“<module>”的类型初始化程序在应用程序池超时</module>之后引发异常

时间:2012-06-27 17:38:18

标签: c# visual-studio-2010 iis dll

我在应用程序池超时后面临外部DLL的问题。

我正在使用带有C#Web应用程序和.NET 2.0的VS2010。此应用程序包括一个外部DLL(用C ++编写)。这个DLL在项目中引用,所以在ObjectBrowser中我可以看到Assembly和所有函数。 DLL需要一个DLL,我将它们安装在c:\ DLL目录中,并将此目录添加到Application_Start()函数的EnvironmentVariables“Path”。

除应用程序超时后,应用程序始终正常工作。 (默认时间为20分钟。)

下次我在超时后运行应用程序时,我得到了“'类型初始值设定项''引发异常。”在执行DLL assambly的新对象的函数中

抛出错误的另一个选项是Windows任务管理器/进程中“w3wp.exe”的“结束进程”。结束进程并刷新应用程序后,将显示错误。

由于

编辑:

内部例外:

at <CrtImplementationDetails>.ThrowModuleLoadException(String , Exception )
at <CrtImplementationDetails>.LanguageSupport.Initialize(LanguageSupport* )
at .cctor()The type initializer for '<Module>' threw an exception.

2 个答案:

答案 0 :(得分:1)

实施删除Cookie后,我发现其他方案存在同样的问题。

所以挖掘更多我发现真正的问题是我的非托管DLL与IPrincipal固有的类冲突:

public class UserDataThirdParty : IPrincipal

所以我在这些链接中找到了解决方案:

The type initializer for '' threw an exception

Error on DataPortal with Loading assembly msvcm80

所以现在我班级的定义是:

public class UserDataThirdParty : MarshalByRefObject, IPrincipal

答案 1 :(得分:0)

最后问题得到了解决。

问题出在cookie上。所以在Application_Start()函数中我删除了这个cookie:

HttpCookie aCookie = new HttpCookie(FormsAuthentication.FormsCookieName);
aCookie.Expires = DateTime.Now.AddDays(-1);
HttpContext.Current.Response.Cookies.Add(aCookie);