任何包装代码来检测应用程序池crashs方式IIS 7 MVC 3.0(Any way to wra

2019-09-26 18:07发布

我有一个MVC 3.0应用程序,每次当部署crashs应用程序池中的某个页面时运行。

此网页无法做任何事情任何其他页面的不同,基本上劫掠数据库记录,并给出了使用视图的信息。

我一直无法弄清楚为什么它崩溃导致应用程序池关闭,并关闭整个网站。 我有安装ELMAH日志追踪,并包裹着一个基本的控制器,但由于应用程序池没有崩溃日志中获取写入ELMAH

我曾尝试使用这种方法来捕获所有异常的非托管
http://support.microsoft.com/kb/911816但是应用程序池仍然crashs,我没有接近找到解决办法。

代码都不是不受管理的,所以我不知道为什么,这是除了调用可能是失败的,但看到在数据库日志中没有错误的数据库发生。 我使用DynamicMethod的产生IL代码映射到数据库结构到我的模型,但相同的实现适用于所有其他模型和破碎通话好的工作我的dev的机器。

如果该IL生成的代码问题1出现故障应例外仍然在标准要求的错误处理被抓?

事件日志是神秘而旁边没用。

Application: w3wp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an internal error in the .NET Runtime at IP      000007FEFA352648 (000007FEFA350000) with exit code 80131506.

DebugDiag资料为64位Windows只允许我来分析转储文件,我无法将其附加到应用程序池或IIS进程。

应用程序运行时完美地调试和VS2010发布模式。

问题2我正在开发32位,但部署到64位。 是否存在这样的东西能正常工作在32位,但未能在64位环境中的任何场景?

问题3我不知道还有什么其他记录或方法,我能做到发现这个问题。 是否有任何其他记录或代码,我可以换我的要求与尝试,并跟踪问题。

我敢肯定那一定是在动态方法的代码的崩溃,因此,如果任何人都可以回答问题1,然后将真正帮助

Answer 1:

确定问题是与DynamicMethod的产生IL代码是失败。

如果字段类型与数据库类型不匹配坠毁整个应用程序池

任何类型不匹配应的被发现在开发服务器上,不过问题是十进制的int和字段类型的数据库类型上的32个开发机没有打破,但打破了64位部署服务器上。

产生IL代码到一个DLL和运行PEVerify显示的问题。

问题1号,
问题2:在这种情况下是
问题3. PEVerify,如果要生成的IL代码总是通过PEVerify运行它。



Answer 2:

你所得到的错误是致命的CLR崩溃。

1)无

2)你需要建立适当的运行时间。

3)在不分享你的代码,你用什么非托管资源,做什么样的信息,也不可能帮助任何进一步。



文章来源: Any way to wrap code to detect App pool crashs IIS 7 MVC 3.0
标签: c# iis-7