调试神秘的IIS崩溃

w8rqjzmb  于 2023-01-17  发布在  其他
关注(0)|答案(1)|浏览(114)

我有一个ASP .NETMVCWeb应用程序,它集成了我们的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

z0qdvdin

z0qdvdin1#

听起来你应该试着在应用程序池中启用32位应用程序。如果你运行的是64位的,那么互操作在为32位编译的二进制文件中就不能很好地运行。

相关问题