IIS 6 应用程序池和 Windows 服务无法启动

IIS 6 应用程序池和 Windows 服务无法启动

Windows Server 2003 R2 (x86) / IIS 6。

我正在设置一个 ASP.NET 应用程序以及一些在“MyServiceAccount”下运行的 Windows 服务。但是,我无法启动应用程序池和 Windows 服务。

MyServiceAccount 位于 IIS_WPG 中,具有适当的本地策略权限和 NTFS 权限,我甚至尝试授予它本地管理员权限。

应用程序池反复失败,并被 IIS 自动停止。我在系统事件日志中看到的错误是:

为应用程序池“MyAppPool”提供服务的进程意外终止。进程 ID 为“7976”。进程退出代码为“0x80”。

窗口服务在启动请求后立即失败,记录的错误是:

等待 MyService 服务连接超时(30000 毫秒)。

我的研究表明,退出代码 0x80 通常与桌面堆耗尽有关。我运行了 Microsoft 的 dheapmon 工具,它表明没有堆压力:

Desktop Heap Information Monitor Tool (Version 8.1.2925.0)
Copyright (c) Microsoft Corporation.  All rights reserved.
-------------------------------------------------------------
  Session ID:    1 Total Desktop: (  4288 KB -    3 desktops)

  WinStation\Desktop            Heap Size(KB)    Used Rate(%)
-------------------------------------------------------------
  WinSta0\Default                    4096             11.5
  WinSta0\Disconnect                   64              4.0
  WinSta0\Winlogon                    128              7.4
-------------------------------------------------------------

重新启动服务器允许 Windows 服务和 IIS 应用程序池正常运行,但只能持续很短的一段时间。(几分钟到一个小时左右。)这表明是某种内存压力(或其他累积过程)导致了问题。

我尝试允许进程使用共享桌面堆,如下所述:

http://support.microsoft.com/kb/831135

但这导致 WWW 发布服务根本无法启动,所以我不得不撤销更改。此外,我没有看到堆压力,这让我认为还有其他事情正在发生。

为了进行健全性检查,我还使用了 SysInternals 进程监视器来查看是否收到任何文件或注册表访问被拒绝错误,但我没有看到任何错误。

任何帮助将不胜感激。

相关内容