IISAdmin 无法启动,错误 0x80090006 - 如何进一步排除故障?

IISAdmin 无法启动,错误 0x80090006 - 如何进一步排除故障?

不久前,我的 Windows Server 2003 机器挂了,我需要通过关闭电源强制重启。重启时,它运行了 chkdsk,而 chkdsk 报告了一些问题。

从那时起 IISAdmin 就无法启动(这意味着 IIS 根本不起作用):

C:\WINDOWS\system32>sc query iisadmin

    SERVICE_NAME: iisadmin
    TYPE               : 20  WIN32_SHARE_PROCESS
    STATE              : 1  STOPPED
                            (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN))
    WIN32_EXIT_CODE    : 1066  (0x42a)
    SERVICE_EXIT_CODE  : -2146893818  (0x80090006)
    CHECKPOINT         : 0x0
    WAIT_HINT          : 0x0

我怀疑 Metabase 已损坏,因此尝试从崩溃之前的 Metabase 历史文件中进行恢复 — — 但没有成功。

不太确定如何进一步排除故障。 SYSTEM 日志中有一个明显相关的错误,该错误经常出现,即来自 DCOM 的事件 ID 10010:

The server {A9E69610-B80D-11D0-B9B9-00A0C922E750} did not register with DCOM
within the required timeout.

但我不确定这是否真的能提供更多的信息或者这只是 IISAdmin 无法启动的另一个警告。

否则,事件日志几乎毫无帮助。下一步该怎么做才能隔离并修复此问题?我应该指出,我没有经常重启此服务器的奢侈——这是一个应用服务器,依赖该应用的用户工作到深夜,我需要在现场重启它,因为它并不总是可靠地重启——但我通常在场外工作。

因此,如果有任何方法可以继续调查此问题而不需要重新启动,我很想听到。

答案1

根据 winerror.h,0x80090006 表示“NTE_BAD_SIGNATURE”,这是 Win32 API 调用“CryptVerifyMessageSignature”的返回值,表示“该消息的签名未经验证”。在我看来,这似乎是与 iisadmin 启动相关的某个文件的加密签名检查失败。

我会考虑执行“SFC /SCANNOW”来查看是否可以替换损坏的文件,假设系统文件检查器可以获取某些 Windows 安装文件,并假设它是一个损坏的文件。(是的 - “损坏”是一个技术术语。对我来说听起来比“损坏”好。损坏?文件是否收受了贿赂?)

如果在“SFC /SCANNOW”之后它仍无法正常工作,我可能会启动“进程监视器”并查看正在加载哪些文件。将会有一个很多生成的日志条目,但您可能会在大海中找到针。

鉴于机器发生硬断电并且文件系统损坏,我会押注“SFC /SCANNOW”来查找一个或多个损坏的文件。

旁白:那么,它无法可靠地重启,是吗?给我一个“该网站瘫痪了!” 有点感觉...(不要重新启动网络服务器!呵呵...)

答案2

只需从“添加/删除程序”>“Windows 组件”重新安装 IIS。我之前曾在 Windows 2003 服务器上安装过它,无需重新启动。

相关内容