ASP.NET Compiler Error 128 and Microsoft Support
I'm having a heck of a problem with a particular box and a dev site that's running ASP.NET. We're getting:
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: The compiler failed with error code 128.
This, along with a lovely compilation dump that shows the source of the Global.asax (the text file, not the Global.asax.cs code-behind.)
I've been working with Microsoft Premier Support but I'm getting pretty frustrated as the general message is "ya, this is obscure, it rarely happens and noone knows why."
Here's what I've collected about the problem so that it may help folks in the future.
Error Code 128 is a core Windows Error ERROR_WAIT_NO_CHILDREN that can happen when a CreateProcess() call fails - like starting the compiler to dynamically compile a page. This error is mentioned in KB articles 155011 and 156464, as well as 184802 which implies it's a problem that happens running out of desktop heap.
Folks that have "fixed" this for themselves have done one or more of the following:
- It's been said, but not conclusively that it's been fixed by applying the 821156 ASP.NET June 2003 Rollup Hotfix.
- It has also been said that running your Windows 2003 IIS 6.0 process in IIS 5.0 Isolation Mode fixes it.
- It has been said that removing the Web App's folder(s) from the scrutiny of your Virus Scanner fixes it.
I've found cases of this happening on Windows 2000 and IIS5 with .NET Framework 1.0, as well as many on newer configurations.
I'd be interested to hear what someone on the ASP.NET team has to say about this problem, as I've found documentation of it happening on and off over the last three years. Certainly there must be an ASP.NET team member who can say, "Oh! Ya, that. You need to flip the bizzle and restart the universal kishkey..." or something.
Anyone else ever see this issue and solve it? Personally, in ~3.5 years of messing with ASP.NET this is a first for me.
UPDATE - SOLVED: It was a funky ISAPI Filter that was sitting ahead of the ASP.NET ISAPI Extension. There is a slight architecture difference for ISAPI filters with IIS 6.0.
UPDATE #2 - MORE INFO: From the Support KB 327611 "IIS 6.0: ISAPI Filters for Earlier Versions of IIS May Not Load" - I wonder if this was involved?