I thought I would share this issue with everyone as it’s a pretty odd one. At a client site of mine that is running Web Interface 3.0, the server group had deployed 2003 SP2 to the Web Interface servers over the weekend. After this, two Web Interface servers hosting different sites both started displaying the typical “Error: An internal error occurred. Please contact your system administrator.” messages. After disabling the Custom Error handler messages per CTX111722 a more descriptive, but still largely useless error message appeared on these servers. Here is the message that was displayed:
Server Error in ‘/Citrix/MetaFrame/default’ Application.
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0007: Unexpected common language runtime initialization error — ‘Class not registered ‘
Source Error:
[No relevant source lines] |
Source File: Line: 0
While this seems to indicate the error is a “Class not registered”, there’s no explanation as to what class was not registered properly. I tried the usual troubleshooting stuff of trying to re-register ASP.NET with IIS (using the aspnet_regiis.exe) as well as verified all permissions, etc. No luck.
Upon examining the detailed compiler output and trying to invoke the C# compiler (csc.exe) on my own, I recognized that the C# source file that was specified in the detailed compiler output didn’t exist in the Temporary ASP.NET File directory (C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\citrix_metaframe_default\3636b954\74f0f6c7). Again I verified that the proper permissions were set, but I could not find any differences between this server and the functional servers. On a whim, I re-registered the .NET Runtime Execution Engine (aka mscoree.dll) and Voila! we were back and functional again. For reference, the registration is as simple as changing into the C:\Windows\system32 folder and executing “regsvr32 mscoree.dll”
Hope this helps someone else out there that may be experiencing the same issue.
Agree? Disagree? Let me know with a comment...