After a series of brown outs, our battery backup gave up and our server was powered off unexpectedly. Among other problems, this caused our WAS service to fail to start with error code 50. A lot of posts on the net reference error messages specifically relating to web.config or machine.config in the event log, but mine does not make any such reference.
<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>
Notice the EventData section is empty except for the error code. I've tried restoring the default web.config and machine.config in both the %windir%\Microsoft.NET\Framework\2.0.x
and %windir%\Microsoft.NET\Framework64\2.0.x
directories. I've also tried restoring the %windir%\system32\inetsrv
directory from a previous backup. Nothing has worked so far.
Because this service wont' start, neither will any of the IIS related services among others. I can't even use the Exchange admin console or shell because they all use web services via IIS. Same with WSUS.
Please help!
Edit: Whatever is causing this is likely related to the fact that I can't do an appcmd.exe list site
or appcmd.exe list config
command either. Both return the following:
ERROR ( hresult:80070032, message:Command execution failed.
The request is not supported.
)
OK, this is one for the books. When I had restored the inetsrv\config directory, I had chosen to "restore copies" rather than "overwrite originals". When the WAS service tried to process the files in this folder, it was reading the copies as well as the originals. It took using procmon.exe with a highlight filter on svchost.exe and pathname containing config for me to find this out.
Removing the extra files allowed it to start right up.