IIS 6/COM +挂起


4

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

这是一个带有大量COM +对象的经典ASP(VBScript)应用程序。

服务器具有以下配置:

  • 英特尔酷睿2双核2.2主频/ 4 GB RAM
  • 的Windows Server 2003 Web版SP2
  • IIS 6.0

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

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

IIS 7.0(多)比IIS 6.0更稳定?

2

听起来像引起问题的狡猾COM对象..你把它们加载到“应用程序”,如果你这样做,他们是线程安全;或者他们在每次请求中使用和丢弃?

是的,回收每隔几个小时将有助于“隐藏”问题,但它们应该被调试并正确修复......您是否尝试过分割/征服以发现哪个COM对象是问题...我可以想象在生产环境中这很棘手,所以你需要设置一些重型自动化测试来在本地重现问题,然后你可以做一些事情。


1

应用程序和系统类别下的事件日志中可能存在一些错误。试着找出这些错误的来源或张贴在这里,我们将看到我们能做些什么:)

编辑: @Daniel西尔韦拉 内存泄漏是可能的。你使用什么COM +对象?我在Excel支持的应用程序中遇到了一些问题。


2

您有内存泄漏:)

这篇博客是我的IIS故障排除圣经:

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

如果您不能审计你的代码并找到参考泄漏是,另一种方法是通过每隔24小时重新启动IIS来回收应用程序。您可以将命令行脚本设置为服务器作业来执行此操作。

  0

您可以回收应用程序池。回收选项卡专为此而构建。不需要脚本。 12 12月. 082008-12-12 15:33:58