WebMail Pro ASP.NET documentation

"No SocketPermission" or "No OdbcPermission" errors and "Medium Trust" policy

If you got No SocketPermission or No OdbcPermission error during installing AfterLogic WebMail Pro, that's ASP.NET environment configuration issue.

Particularly, No SocketPermission means ASP.NET applications on your hosting/server are prohibited from establishing network connections. WebMail Pro ASP.NET will be unable to send/receive mail without establishing network connections to mail servers.

No OdbcPermission means accessing databases through ODBC engine is prohibited for ASP.NET applications on your hosting/server. WebMail Pro ASP.NET will be unable to store user accounts settings, addressbooks, calendars, etc. in its database.

If you got one of these errors or both of them, most probably, your hosting provider or server administrator set too strict trust level, i.e. Medium, Low or Minimal.

There are two ways of resolving this issue:

  • setting less strict trust level, i.e. Full or High;
  • customizing your current trust level to enable SocketPermission and OdbcPermission.

The following articles describe how to do that:
How To: Use Medium Trust in ASP.NET 2.0
Customizing the Medium Trust Policy

NOTE: If you don't have access to ASP.NET config files on your server, show this article to your server administrator or hosting provider and ask them to change the configs for you.

Briefly, what you need to do:

1. Learn your current trust level in the following key of %windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config file:

<trust level="Medium" originUrl=""/>

2. Change it to Full or High;
or

3. Instead of step 2, you can edit the appropriate trust level config file (it's web_mediumtrust.config for Medium Trust) and add the following tags there:

<SecurityClasses>
    <SecurityClass Name="SocketPermission" Description="System.Net.SocketPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <SecurityClass Name="OdbcPermission" Description="System.Data.Odbc.OdbcPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</SecurityClasses>
<NamedPermissionSets>
    <PermissionSet class="NamedPermissionSet" version="1" Name="ASP.Net">
        <IPermission class="SocketPermission" version="1" Unrestricted="true"/>
        <IPermission class="OdbcPermission" version="1" Unrestricted="true" />
    </PermissionSet>
</NamedPermissionSets>

The result should look like: