调试一个神秘的IIS崩溃

时间:2010-07-15 20:54:32

标签: asp.net-mvc debugging iis crash

我有一个ASP.NET MVC Web应用程序,它集成了我们的C#托管库,可以加载非托管插件来进行一些文件处理。这些非托管插件依赖于少数第三方库来完成他们的肮脏工作;其中一些导致IIS崩溃。

我们在桌面应用程序中使用完全相同的库,它能够很好地处理文件。在Visual Studio 2008附带的Cassini Web服务器下运行时,文件也处理得很好(IIS和Cassini在本地机箱上运行相同的文件夹)。

我做了一个Crash Analysis with Debug Diagnostic (img),我无法从中提取任何有用的信息。

我使用了procexp来查看是否有任何失败的文件或注册表访问尝试可能导致问题但是变得简短。考虑到在那种伐木过程中产生的线数,我没有看到任何东西,但很容易错过它们。

我将应用程序池配置为使用域帐户,并将该帐户设置为我的框中的管理员,认为这可能是权限问题,但没有运气。 IIS中是否存在其他我不知道的访问限制?

连连呢?文章?工具?伏都?

编辑:我能够将其调试到第三方库的初始化例程。由于库在其他主机下运行良好,我怀疑是权限问题或内存问题。在IIS下运行时,它被证明是一个堆栈大小限制。见Stack sizes in IIS - affects ASP.NET

1 个答案:

答案 0 :(得分:2)

听起来你应该尝试在应用程序池中启用32位应用程序。如果您正在运行64位,则Interop不能很好地处理为32位编译的二进制文件。