我们在 IIS 6 中有一个支持 ASP 经典应用程序的 COM+DLL。我们已成功调试到我们知道该 DLL 导致工作进程挂起(对该对象的调用永远不会返回)的程度。有哪些配置选项可以修复此问题?
答案1
我们发现的解决方案是限制 COM+ 允许调用运行的时间,然后终止它。
我们在事件日志中发现了这个事件:
平均通话时长已超过 10 分钟。如果这不是预期的行为,请参阅 Microsoft 知识库中的文章 910904,网址为http://support.microsoft.com了解如何使用 COM+ AutoDump 功能自动生成转储文件和/或在问题再次发生时终止进程的详细信息。服务器应用程序 ID:{20D49551-DF30-4A60-B553-CAD7B97F2153} 服务器应用程序实例 ID:{45DB1F97-8995-481C-94EE-CA891E446202} 服务器应用程序名称:<-REDACTED->
这导致我们千字节。
然后我们修改了设置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump 根据 kb。问题仍然存在,但现在不会挂断整个服务器,只有一个用户挂断。
答案2
您是否尝试过在 IIS5 兼容模式下运行?
- 在 IIS 管理器 UI 中右键单击“网站”节点的属性
- 在属性页中选择“服务”选项卡
- 将会有一个复选框控制 IIS6 是否运行“在 IIS5 隔离模式下运行 WWW 服务”。选中它可让 IIS6 在 IIS5 工作进程隔离模式下运行。