Microsoft Knowledge Base Article
This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved.
Terms
of Use |
Trademarks
Error message when you browse an .aspx page and the World Wide Web Publishing Service is configured to interact with the desktop: "The compiler failed with error code 128"
| Article ID | : | 919085 |
| Last Review | : | March 16, 2007 |
| Revision | : | 1.3 |
Important This article contains information that shows you how to help
lower security settings or how to turn off security features on a computer. You
can make these changes to work around a specific problem. Before you make these
changes, we recommend that you evaluate the risks that are associated with
implementing this workaround in your particular environment. If you implement
this workaround, take any appropriate additional steps to help protect your
system.
On This Page
SYMPTOMS
Consider the following scenario. You configure the World
Wide Web Publishing Service on Microsoft Windows Server 2003 to interact with
the desktop. You log on to a console session either locally or remotely. In
this scenario, when you browse an .aspx page that requires compilation, you may
receive the following error message:
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: The compiler failed with error code 128.
Back to the top
CAUSE
This problem occurs because the worker process that tries to
start the Microsoft ASP.NET compiler process is running under the Network
Service identity or under an account that is not in the Administrators group.
When the ASP.NET compiler process tries to start Vbc.exe or Csc.exe, the
process initialization routine fails. This failure occurs because a dependent
DLL fails during its initialization routine. If any of the DLLs for a process
return a failure in their initialization routine, the operating system stops
the process startup and returns an error code of 128 (
ERROR_WAIT_NO_CHILDREN).
Back to the top
RESOLUTION
To resolve this problem, use either of the following
methods. Use the method that fits your situation the best.
Back to the top
Method 1: Prevent the World Wide Web Publishing Service from interacting with the desktop
You can prevent the World Wide Web Publishing Service from
interacting with the desktop. This is the preferred method.
Note By default, the World Wide Web Publishing Service is not
configured to interact with the desktop.
To do this, follow these
steps:
| 1. | Click Start, click Run,
type cmd, and then click OK. |
| 2. | At the command prompt, type control
admintools, and then press ENTER. |
| 3. | Double-click Services. |
| 4. | In the Services pane, locate World
Wide Web Publishing Service. |
| 5. | Right-click World Wide Web Publishing
Service, and then click Properties. |
| 6. | Click the Log On tab. |
| 7. | Click to clear the Allow service to interact with
desktop check box. |
| 8. | Click OK. |
Back to the top
Method 2: Change the application pool identity to the Local System identity
Warning This workaround may make your computer or your network more
vulnerable to attack by malicious users or by malicious software such as
viruses. We do not recommend this workaround but are providing this information
so that you can implement this workaround at your own discretion. Use this
workaround at your own risk.
You can change the
application pool identity to the Local System identity.
Important You should only use this method if the following conditions are
true:
| • | The ASP.NET Web application must interact with the
desktop. |
| • | You understand the security implications of changing the
application pool identity to the Local System identity. For more information
about the Local System account and the Network Service account, see the
"Applications as NT Services" section at the following Microsoft Developer
Network (MSDN) Web site: |
To do this, follow these steps:
| 1. | Click Start, click Run,
type cmd, and then click OK. |
| 2. | At the command prompt, type control
admintools, and then press ENTER. |
| 3. | Double-click Internet Information Services (IIS)
Manager. |
| 4. | Expand the computer name, expand Application
Pools, right-click the name of the application pool that you want to
modify, and then click Properties. |
| 5. | Click the Identity tab. |
| 6. | Click Predefined, and then click
Local System. |
| 7. | Click OK. |
Back to the top
MORE INFORMATION
ASP.NET does not try to compile a page after an error is
encountered during the compilation process. The error is cached until the
process is recycled, or until the page or one of its dependencies is modified.
When the worker process is tied to the console windowstation (Winsta0), the
World Wide Web Publishing Service adds the security identifier (SID) for the
IIS_WPG group to the access control list (ACL) for the Winsta0 object. Then,
the World Wide Web Publishing Service starts the W3wp.exe
process.
When a user logs on to or off a console session, the Winlogon
process rebuilds the ACL for the Winsta0 object and removes the IIS_WPG SID
from the ACL. Any child processes that are started by the worker process
(W3wp.exe) may not start. These processes include the Csc.exe and Vbc.exe
processes.
Back to the top
When a service is not configured to interact with the
desktop, the process uses a non-interactive windowstation that is unaffected by
a user logging on to the console.
Note You can log on to the console in Windows Server 2003 by any one
of the following methods:
| • | Log on to the computer interactively. |
| • | Use the Remote Desktop client application. For example,
type mstsc.exe /console at a command prompt. |
| • | Use a third-party application that accesses the console
session. |
Back to the top
APPLIES TO
| • | Microsoft ASP.NET 1.1 |
| • | Microsoft ASP.NET (included with the .NET Framework) 1.0 |
| • | Microsoft Visual Studio .NET 2002 Professional Edition |
| • | Microsoft Visual Studio .NET 2002 Enterprise Architect |
| • | Microsoft Visual Studio .NET 2002 Enterprise Developer |
| • | Microsoft Visual Studio .NET 2002 Academic Edition |
| • | Microsoft Visual Studio .NET 2003 Professional Edition |
| • | Microsoft Visual Studio .NET 2003 Enterprise Architect |
| • | Microsoft Visual Studio .NET 2003 Enterprise Developer |
| • | Microsoft Visual Studio .NET 2003 Academic Edition |
Back to the top
Community Feedback System
Very often, it takes hours to solve a problem. Very often, you've looked high
and low, and have tried a lot of solutions. When you finally found it, chances
are, it was because someone else helped you. Here's your chance to give back.
Use our community feedback tool to let others know what worked for you and what
didn't.
Please also understand that the community feedback system is not warranted to be
correct, it's simply a system that we've built to let people try and help each
other. If something in a feedback response doesn't make sense to you, or you're
not comfortable making changes that the feedback talks about (like registry
edits), please consult a professional.
Thank you for using kbAlertz.com Feedback System.
-- Scott Cate
Be the first to leave feedback, to help others about this knowledge base
article.
(Optional) Name
(Optional)
Public URL Or Email
Comments
No
HTML -- Text Only Please