在经历了一系列的电压下降之后,我们的备用电池失效了,我们的服务器意外断电。除了其他问题之外,这还导致我们的 WAS 服务无法启动,错误代码为 50。网上很多帖子都提到了与事件日志中的 web.config 或 machine.config 相关的错误消息,但我的帖子没有提到这些。
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-WAS" Guid="{524B5D04-133C-4A62-8362-64E8EDB9CE40}" EventSourceName="WAS" />
<EventID Qualifiers="49152">5036</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2015-08-20T12:04:11.000000000Z" />
<EventRecordID>3025016</EventRecordID>
<Correlation />
<Execution ProcessID="0" ThreadID="0" />
<Channel>System</Channel>
<Computer>[redacted]</Computer>
<Security />
</System>
<EventData>
<Binary>32000780</Binary>
</EventData>
</Event>
请注意,除了错误代码外,EventData 部分为空。我尝试在和%windir%\Microsoft.NET\Framework\2.0.x
目录中恢复默认的 web.config 和 machine.config %windir%\Microsoft.NET\Framework64\2.0.x
。我还尝试%windir%\system32\inetsrv
从以前的备份中恢复目录。到目前为止,没有任何效果。
由于此服务无法启动,因此 IIS 相关服务也无法启动。我甚至无法使用 Exchange 管理控制台或 shell,因为它们都通过 IIS 使用 Web 服务。WSUS 也是如此。
请帮忙!
编辑:造成这种情况的原因可能与我无法执行appcmd.exe list site
或appcmd.exe list config
命令有关。两者都返回以下内容:
ERROR ( hresult:80070032, message:Command execution failed.
The request is not supported.
)
答案1
好的,这是一本值得记录的书。当我恢复 inetsrv\config 目录时,我选择了“恢复副本”而不是“覆盖原始文件”。当 WAS 服务尝试处理此文件夹中的文件时,它会读取副本和原始文件。我使用 procmon.exe 和高亮过滤器对 svchost.exe 和包含 config 的路径名进行筛选,才发现这一点。
删除多余的文件后它就可以立即启动。