代码之家  ›  专栏  ›  技术社区  ›  Todd Smith Brandon

调试神秘的IIS崩溃

  •  0
  • Todd Smith Brandon  · 技术社区  · 14 年前

    我有一个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 回复  |  直到 14 年前
        1
  •  2
  •   Magnus von Wachenfeldt    14 年前

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