IIS 6 / COM +挂起

时间:2020-03-05 18:41:22  来源:igfitidea点击:

我有一个Web应用程序,有时只是挂在重负载上。为了使它回来,我必须杀死" dllhost.exe"进程。有人知道该怎么办吗?

这是带有许多COM +对象的经典ASP(VBScript)应用程序。

服务器具有以下配置:

  • Intel Core 2 Duo 2.2 GHz / 4 GB RAM
  • Windows Server 2003 Web版SP2
  • IIS 6.0

事件日志中有一些与COM对象有关的错误。但是,为什么COM对象中的错误会使整个服务器崩溃?

COM对象是部署为COM对象的PowerBuilder对象。

IIS 7.0(远比IIS 6.0)更稳定吗?

解决方案

回答

事件日志中"应用程序"和"系统"类别下可能存在一些错误。尝试找到这些错误的根源或者将其发布在此处,我们将看到我们可以做的事情:)

编辑 :
@丹尼尔·西尔维拉
可能发生内存泄漏。我们使用什么COM +对象?我所支持的应用程序在使用Excel时遇到一些问题。

回答

我们有内存泄漏:)

此博客条目是我进行IIS故障排除的圣经:

http://blogs.msdn.com/david.wang/archive/2005/12/31/HOWTO_Basics_of_IIS6_Troubleshooting.aspx

如果我们无法审核代码并查找引用泄漏的位置,则另一种方法是每隔24小时左右重新启动IIS,以回收应用程序。我们可以仅将命令行脚本设置为服务器作业来执行此操作。

回答

听起来像是狡猾的COM对象引起了问题..我们是否将它们加载到"应用程序"中,如果这样做,它们是否是线程安全的;还是在每次请求时都使用和丢弃了它们?

是的,每隔几个小时进行一次回收将有助于"隐藏"问题,但是应该对其进行调试和正确修复...我们是否尝试过分治/征服以发现哪个COM对象是问题...我可以想象这很棘手生产环境,因此我们需要设置一些繁重的自动化测试以在本地重现该问题,然后我们可以对此做一些事情。