一会儿我的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 History文件恢复 – 但没有运气。
不确定如何解决这个问题。 系统日志中有一个明显相关的错误,定期出现,来自DCOM的事件ID 10010:
The server {A9E69610-B80D-11D0-B9B9-00A0C922E750} did not register with DCOM within the required timeout.
但我不确定这是否真的stream光溢彩,或者只是另一个警告IISAdmin无法启动。
否则事件日志是空的帮助。 下一步是隔离这个问题并解决它? 我应该指出,我没有经常重新启动这个服务器的奢侈 – 这是一个应用程序服务器,依赖应用程序的用户一直工作到深夜,我需要在现场重新启动因为它不总是可靠地重新启动 – 但我通常在异地工作。
所以如果有什么办法可以继续调查,而不需要重新启动,我很想听到它。
根据winerror.h,0x80090006的意思是“NTE_BAD_SIGNATURE”,它是从Win32 API调用“CryptVerifyMessageSignature”返回的,并且表示“消息的签名未被validation”。 看起来像一个encryption签名检查失败的一些与iisadmin启动相关的文件,对我来说。
我会考虑做一个“SFC / SCANNOW”,看看你是否可以replace搞砸的文件,假设系统文件检查器可以得到一些Windows安装文件,并假设它是一个搞砸的文件。 (是 – “搞砸”是一个技术术语,对我来说听起来比“腐败”更好,腐败?文件是否受贿?)
如果你没有在“SFC / SCANNOW”之后得到它的工作,我可能会启动“进程监视器”,并观察哪些文件正在加载。 会有很多的日志条目生成,但你可能会发现在这个大海捞针。
鉴于该机器硬盘掉电,并有一些文件系统损坏,我把我的钱“SFC / SCANNOW”find一个或多个损坏的文件。
旁白:所以,它不会可靠地重启,呃? 给我一个“网站已closures!” 有种感觉…(不要重新启动Web服务器!!!!!!嘿嘿…)
只需从“添加/删除程序”>“Windows组件”重新安装IIS即可。 我以前在Windows 2003服务器上安装过它,而且不必重新启动。