ASP.Net Security Exception on production server
<p>I have an ASP.Net web application built on framework 3.5 is running fine on local iis but when I deployed it to GoDaddy , i started getting the security excepty. The complete exception is below</p>

<pre><code>Server Error in '/' Application.
--------------------------------------------------------------------------------

Security Exception Description: The application attempted to perform an 
operation  not allowed by the security policy.  To grant this application 
the required permission please contact your system administrator 
or change the application's trust level in the configuration file. 



 Exception Details: 
      System.Security.SecurityException:     
      System.Security.Permissions.SecurityPermission

Source Error: 


[No relevant source lines]


Source File: App_Web_xymjrvu2.0.cs    Line: 0 

Stack Trace: 


[SecurityException: System.Security.Permissions.SecurityPermission]
   PourNavi.Web.Core.DbHelper.Dispose(Boolean disposing) +0
   PourNavi.Web.Core.DbHelper.Dispose() +44
   PourNavi.Web.Core.MessageDataObjects.GetMessagesInfoForUserFromManager() +170
   PourNavi.Web.Core.MessagingManager.GetMessagesInfoForUserFromManager() +31
   PourNavi.Web.UI.UserControl.ucMessages.BindMessages() +41
   PourNavi.Web.UI.UserControl.ucMessages.Page_Load(Object sender, EventArgs e) +67
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6785
   System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +242
   System.Web.UI.Page.ProcessRequest() +80
   System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
   System.Web.UI.Page.ProcessRequest(HttpContext context) +49
   ASP.login_aspx.ProcessRequest(HttpContext context) in App_Web_xymjrvu2.0.cs:0
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously) +75
</code></pre>

<p>I gone through various similar questions on SO but no help...  </p>

<p><strong>[Updated: Code of DbHelper.cs]</strong></p>

<pre><code>internal class DbHelper : IDisposable
{
    // Fields
    private readonly Component _component;
    private SqlConnection _connection;
    private bool _disposed;
    private IntPtr _handle;

    // Methods
    public DbHelper()
    {
        this._component = new Component();
        this.OpenConnection();
    }

    public DbHelper(IntPtr handle)
    {
        this._component = new Component();
        this._handle = handle;
    }

    private void CloseConnection()
    {
        try
        {
            if (this._connection.State == ConnectionState.Open)
            {
                this._connection.Close();
            }
        }
        finally
        {
            this._connection.Dispose();
        }
    }

    [DllImport("Kernel32")]
    private static extern bool CloseHandle(IntPtr handle);
    public void Dispose()
    {
        this.CloseConnection();
        this.Dispose(true);
        GC.SuppressFinalize(this);
    }

    protected virtual void Dispose(bool disposing)
    {
        if (!this._disposed)
        {
            if (disposing)
            {
                this._component.Dispose();
            }
            CloseHandle(this._handle);
            this._handle = IntPtr.Zero;
            this._disposed = true;
        }
    }

    public int ExecuteNonQuery(string commandText, CommandType commandType)
    {
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            return command.ExecuteNonQuery();
        }
    }

    public int ExecuteNonQuery(string commandText, CommandType commandType, SqlParameter parameter)
    {
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            command.Parameters.Add(parameter);
            return command.ExecuteNonQuery();
        }
    }

    public int ExecuteNonQuery(string commandText, CommandType commandType, SqlParameter[] parameters)
    {
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            command.Parameters.AddRange(parameters);
            return command.ExecuteNonQuery();
        }
    }

    public object ExecuteScalar(string commandText, CommandType commandType)
    {
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            return command.ExecuteScalar();
        }
    }

    public object ExecuteScalar(string commandText, CommandType commandType, SqlParameter parameter)
    {
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            command.Parameters.Add(parameter);
            return command.ExecuteScalar();
        }
    }

    public object ExecuteScalar(string commandText, CommandType commandType, SqlParameter[] parameters)
    {
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            command.Parameters.AddRange(parameters);
            return command.ExecuteScalar();
        }
    }

    public DataTable ExecuteSelect(string commandText, CommandType commandType)
    {
        DataTable table = new DataTable();
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            using (SqlDataReader reader = command.ExecuteReader())
            {
                if (reader != null)
                {
                    table.Load(reader);
                }
            }
        }
        return table;
    }

    public DataTable ExecuteSelect(string commandText, CommandType commandType, SqlParameter[] parameters)
    {
        DataTable table = new DataTable();
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            command.Parameters.AddRange(parameters);
            using (SqlDataReader reader = command.ExecuteReader())
            {
                if (reader != null)
                {
                    table.Load(reader);
                }
            }
        }
        return table;
    }

    public DataTable ExecuteSelect(string commandText, CommandType commandType, SqlParameter parameter)
    {
        DataTable table = new DataTable();
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            command.Parameters.Add(parameter);
            using (SqlDataReader reader = command.ExecuteReader())
            {
                if (reader != null)
                {
                    table.Load(reader);
                }
            }
        }
        return table;
    }

    public DataSet ExecuteSelectDataSet(string commandText, CommandType commandType)
    {
        DataSet dataSet = new DataSet();
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            using (SqlDataAdapter adapter = new SqlDataAdapter(command))
            {
                adapter.Fill(dataSet);
            }
        }
        return dataSet;
    }

    public DataSet ExecuteSelectDataSet(string commandText, CommandType commandType, SqlParameter[] parameters)
    {
        DataSet dataSet = new DataSet();
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            command.Parameters.AddRange(parameters);
            using (SqlDataAdapter adapter = new SqlDataAdapter(command))
            {
                adapter.Fill(dataSet);
            }
        }
        return dataSet;
    }

    public DataSet ExecuteSelectDataSet(string commandText, CommandType commandType, SqlParameter parameter)
    {
        DataSet dataSet = new DataSet();
        using (SqlCommand command = new SqlCommand(commandText, this._connection))
        {
            command.CommandType = commandType;
            command.Parameters.Add(parameter);
            using (SqlDataAdapter adapter = new SqlDataAdapter(command))
            {
                adapter.Fill(dataSet);
            }
        }
        return dataSet;
    }

    ~DbHelper()
    {
        this.Dispose(false);
    }

    private void OpenConnection()
    {
        try
        {
            this._connection = new SqlConnection(ConnectionString);
            if (this._connection.State == ConnectionState.Open)
            {
                this._connection.Close();
            }
            this._connection.Open();
        }
        catch
        {
            throw new Exception("An error occured while communicating to sql server database.");
        }
    }

    // Properties
    private static string ConnectionString
    {
        get
        {
            return ConfigurationManager.ConnectionStrings["PourNavi.DigitalPrinting"].ConnectionString;
        }
    }
}
</code></pre>

<p>Do i need to remove stuffs from my code. Please help me out..</p>

<p><strong>[Resolved]</strong></p>

<p>Thanks guys for kind support, I resolved the issue. DllImport was the root cause , as I was inporting Kernel32....</p>
