我有一个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