Author |
|
tetranz Newbie
Joined: 25 February 2007
Online Status: Offline Posts: 1
|
Posted: 25 February 2007 at 4:54pm | IP Logged
|
|
|
Hi
I'm playing with the free trial of MailBee.NET POP3. I have it working nicely on my own machine but when I try it on my web host I get an exception. I'll paste it below.
My host runs medium trust but before I started I tested SocketPermission with a little test program and that seems to be enabled. This error seems to be related to the line of code when I set the license key. Some web searching suggests that this might be related to obfuscation.
I got this error with the C# pop3 sample app and then with my own app. I'm running VS2005 SP1.
Any ideas?
Regards
Ross
Could not load type 'System.Byte' from assembly 'MailBee.NET, Version=2.0.0.6, Culture=neutral, PublicKeyToken=cd85b70fb26f9fc1' due to value type mismatch.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.TypeLoadException: Could not load type 'System.Byte' from assembly 'MailBee.NET, Version=2.0.0.6, Culture=neutral, PublicKeyToken=cd85b70fb26f9fc1' due to value type mismatch.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[TypeLoadException: Could not load type 'System.Byte' from assembly 'MailBee.NET, Version=2.0.0.6, Culture=neutral, PublicKeyToken=cd85b70fb26f9fc1' due to value type mismatch.]
bk.a(String A_0, Type A_1, a3& A_2) +0
bk.a(String A_0, Type A_1) +174
MailBee.Pop3Mail.Pop3.set_LicenseKey(Strin g value) +22
MailBeeTest.mbtest.Button1_Click(Object sender, EventArgs e) +15
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.WebControls.Button.OnClick(E ventArgs e) +105
System.Web.UI.WebControls.Button.RaisePost BackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.We b.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPos tBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(Name ValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Bool ean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
|
Back to Top |
|
|
Andrew AfterLogic Support
Joined: 28 April 2006 Location: United States
Online Status: Offline Posts: 1189
|
Posted: 26 February 2007 at 3:23am | IP Logged
|
|
|
This error indicates .NET Framework 2.0 installation is damaged. For instance, this occurs when SQL Server 2005 SP1 update gets installed. The solution is to uninstall SQL Server 2005 SP1 or select Repair option in .NET Framework 2.0 installer.
Useful link:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=686539 &SiteID=1
Best regards,
Andrew
|
Back to Top |
|
|
Mhd Newbie
Joined: 18 February 2008 Location: United Kingdom
Online Status: Offline Posts: 38
|
Posted: 30 August 2008 at 2:35am | IP Logged
|
|
|
Andrew wrote:
This error indicates .NET Framework 2.0 installation is damaged. |
|
|
I do not think that is true! We got this message on our website that we host on godaddy.com, I do not think that a well known hoster like godaddy.com allow .NET Framework to be damaged.
|
Back to Top |
|
|
Igor AfterLogic Support
Joined: 24 June 2008 Location: United States
Online Status: Offline Posts: 6103
|
Posted: 01 September 2008 at 6:27am | IP Logged
|
|
|
The exception message clearly states that MailBee.NET.dll assembly attempts to use Byte class defined in System namespace (mscorlib.dll file). As the assembly is unable to access the core namespace of .NET Framework, it means that the issue is caused by problems in .NET Framework installation.
Have you tried to contact GoDaddy support staff regarding this issue?
Regards,
Igor
|
Back to Top |
|
|
Mhd Newbie
Joined: 18 February 2008 Location: United Kingdom
Online Status: Offline Posts: 38
|
Posted: 02 September 2008 at 7:07am | IP Logged
|
|
|
I just contacted them and they told me this problem is related with the meduim trust level and that is true because I changed the trust level to full and this error disappeared but when I returned the trust level to meduim this error re-occur. Now the question is how can I make this component to work on meduim trust level without this error? Do you have a fix?
By the way I have the latest version.
|
Back to Top |
|
|
Igor AfterLogic Support
Joined: 24 June 2008 Location: United States
Online Status: Offline Posts: 6103
|
Posted: 02 September 2008 at 7:32am | IP Logged
|
|
|
Please let us know the exact build number of the MailBee.NET.dll you are using. You can see it in .dll Properties or using MailMessage.Version property.
Regards,
Igor
|
Back to Top |
|
|
Mhd Newbie
Joined: 18 February 2008 Location: United Kingdom
Online Status: Offline Posts: 38
|
Posted: 02 September 2008 at 7:40am | IP Logged
|
|
|
We are using version 3.0.1.74
|
Back to Top |
|
|
Alex AfterLogic Support
Joined: 19 November 2003
Online Status: Offline Posts: 2206
|
Posted: 02 September 2008 at 7:47am | IP Logged
|
|
|
You should use .NET 2.0+ optimized version 3.0.2.x. 3.0.1.x versions are for .NET 1.1. Although .NET Framework should be backward compatible, it's not always so.
By the way, build 74 is very old.
You can get the latest version (.NET 2.0+ optimized) from http://www.afterlogic.com/updates/mailbee_net_2.zip
The current one is 4.0.2.110.
Regards,
Alex
|
Back to Top |
|
|
Mhd Newbie
Joined: 18 February 2008 Location: United Kingdom
Online Status: Offline Posts: 38
|
Posted: 02 September 2008 at 8:17am | IP Logged
|
|
|
The problem still exist even after installing the new version but with a different error message, when I change the trust level to full it disappears, here is the new error message:
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: Request for the permission of type 'System.Net.SocketPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
Source Error:
Line 115:
Line 116: &n bsp; 'If ACCOUNT_NAME = "" Or ACCOUNT_PASSWORD = "" Then Continue For
Line 117: &n bsp; imp.Connect(SERVER_NAME)
Line 118:
Line 119: &n bsp; imp.Login(USERNAME, ACCOUNT_PASSWORD, AuthenticationMethods.Regular)
Source File: E:\Projects\SmartKnowledgebase2.5\SmartKnowledgebase\Admin\A utoTickets\ProccessMessages.aspx.vb L ine: 117
Stack Trace:
[SecurityException: Request for the permission of type 'System.Net.SocketPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
System.Security.CodeAccessSecurityEngine.C heck(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
System.Security.CodeAccessPermission.Deman d() +59
System.Net.Sockets.Socket.CheckCacheRemote (EndPoint& remoteEP, Boolean isOverwrite) +176
System.Net.Sockets.Socket.Connect(EndPoint remoteEP) +72
bt.a(IPEndPoint A_0) +126
co.a(IPEndPoint A_0) +16
bg.a(IPHostEntry A_0, Int32 A_1) +105
ay.a(String A_0, Int32 A_1, Boolean A_2, EndPoint A_3) +1019
ay.y() +41
bn.a5() +152
ca.a(Boolean A_0, String A_1, Int32 A_2, Boolean A_3) +265
ca.g(Boolean A_0, String A_1) +91
MailBee.ImapMail.Imap.Connect(String serverName) +19
SmartKnowledgebase.ProccessMessages.GetMes sage() in E:\...\ProccessMessages.aspx.vb:117
SmartKnowledgebase.ProccessMessages.Page_L oad(Object sender, EventArgs e) in E:\Projects\SmartKnowledgebase2.5\SmartKnowledgebase\Admin\A utoTickets\ProccessMessages.aspx.vb:54
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Bool ean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6978
System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +213
System.Web.UI.Page.ProcessRequest() +86
System.Web.UI.Page.ProcessRequestWithNoAss ert(HttpContext context) +18
System.Web.UI.Page.ProcessRequest(HttpCont ext context) +49
ASP.admin_autotickets_proccessmessages_asp x.ProcessRequest(HttpContext context) +29
System.Web.CallHandlerExecutionStep.System .Web.HttpApplication.IExecutionStep.Execute() +303
System.Web.HttpApplication.ExecuteStep(IEx ecutionStep step, Boolean& completedSynchronously) +64
|
Back to Top |
|
|
Alex AfterLogic Support
Joined: 19 November 2003
Online Status: Offline Posts: 2206
|
Posted: 02 September 2008 at 8:44am | IP Logged
|
|
|
That's correct. SocketPermissions means your environment does not allow making network connections on medium trust level. Obvisously, you should increase trust level in order to be able to make network connections.
Regards,
Alex
|
Back to Top |
|
|
Mhd Newbie
Joined: 18 February 2008 Location: United Kingdom
Online Status: Offline Posts: 38
|
Posted: 02 September 2008 at 9:03am | IP Logged
|
|
|
We have a production software which will be installed on hosting servers which means that it will be used on on Meduim trust level environment!
|
Back to Top |
|
|
Alex AfterLogic Support
Joined: 19 November 2003
Online Status: Offline Posts: 2206
|
Posted: 02 September 2008 at 9:25am | IP Logged
|
|
|
SocketException means the current environment does not allow the application to make network connections. Obviously, the software which needs to make network connections, cannot be used where making network connections is not allowed.
Regards,
Alex
|
Back to Top |
|
|
Alex AfterLogic Support
Joined: 19 November 2003
Online Status: Offline Posts: 2206
|
Posted: 02 September 2008 at 9:30am | IP Logged
|
|
|
However, many shared hosting providers allow making connections. The security policy of each provider is different and there is no common approach.
Regards,
Alex
|
Back to Top |
|
|
Mhd Newbie
Joined: 18 February 2008 Location: United Kingdom
Online Status: Offline Posts: 38
|
Posted: 02 September 2008 at 9:34am | IP Logged
|
|
|
Is this a general case for all meduim trust level or just for our environment?
From microsoft website the meduim trust level limitations are:
1- Calling unmanaged code.
2 -Accessing the registry.
3- Writing to the event log.
4- Connecting to databases other than SQL Server.
5- Accessing Web resources on remote servers.
6- Accessing the file system beyond your application's virtual directory hierarchy.
I think using sockets are allowed in meduim level!
|
Back to Top |
|
|
Alex AfterLogic Support
Joined: 19 November 2003
Online Status: Offline Posts: 2206
|
Posted: 02 September 2008 at 9:57am | IP Logged
|
|
|
It's your environment limitation. Trust levels defined by .NET are just defaults and can (and often are) overridden.
In our environment, socket connections work on medium trust.
Regards,
Alex
|
Back to Top |
|
|
Alex AfterLogic Support
Joined: 19 November 2003
Online Status: Offline Posts: 2206
|
Posted: 03 September 2008 at 3:37am | IP Logged
|
|
|
Update. After resetting trust levels to dfeaults we found that sockets are indeed disabled at Medium Trust level.
The reason they are usually enabled at shared hostings is that the most popular setting there is High, not Medium, and some hosting providers set Medium but additionally enable sockets.
Regards,
Alex
|
Back to Top |
|
|