I have developed a web application that has been distributed. Upon installing my application, some people encountered a "500 Internal Error" and of course blamed my software immediately (and got frustrated when uninstalling/reinstalling my software didn't fix the problem). Finally I was able to take a look at one of these computers and discovered that IIS was not working correctly at all.
I took a look at the Windows Event Log and found an error that had the brilliantly vague message:
Event ID: 36I researched this online and sure enough a lot of other people have experienced the same problem. One article said that when this error happens, typically you cannot expand the COM+ Applications tree in the Component Services module.
Description:
"Failed to load application '/LM/W3SVC/1/Root'. The error was 'Class not Registered"
Sure enough, I found the same problem. Whenever I tried to expand this, an error message would pop up saying:
Catalog ErrorIn the Event Log I would find errors with the following details:
"An error occurred while processing the last operation. Error Code 80080005 - Server execution failed".
Even though I followed many solutions listed online, I could not fix the problem with the COM+ applications and so my IIS 500 Internal Error persisted. (Many solutions involved permissions, starting and stopping services, or even so far as to have me delete and recreate registration entries)
Event ID: 4689
Description:
"The runtime environment has detected an inconsistency in its internal state. This indicates a potential instability in the process that could be caused by the custom components running in the COM+ application, the components they make use of, or other factors."
Eventually, after rebooting, I found a new error in my event log:
The Distributed Transaction Coordinator (DTC or MSDTC) service is a component of Microsoft Windows that is responsible for coordinating transactions that span multiple resource managers, such as databases, message queues, and file systems.
Event ID: 4437
Description:
"The account that the MS DTC service is running under is invalid. This can happen if the service account information has been changed..."
I discovered that the DTC service was running under Local Service account. I researched what the correct account should be and discovered that it was supposed to be Network Services.
Apparently the DTC fails under any other account because the service cannot do mutual authentication together with other parties that are involved in the transaction. It must be run under the Network Services Account on Windows XP and Windows Server 2003. You could change this account to validate against a domain controller or use a Windows User Account in the past (Windows 2000 and NT) but you cannot change this account in current versions of Windows (I'm assuming this extends to Vista etc as well).
After changing the DTC to run under the Windows Network Services account my COM+ problem was solved... I was able to reinstall IIS and there were no longer any 500 Internal Errors.
I hope this saves you the headache of researching the problem and trying the thousands of solutions google turns up....when it's just a simple account issue.
-Frinny