Microsoft KB Archive/916440

From BetaArchive Wiki
Knowledge Base


You receive an error message about a DEP violation when you request an ASP.NET page for the .NET Framework 1.1 on Windows Vista

Article ID: 916440

Article Last Modified on 5/26/2006



APPLIES TO

  • Microsoft .NET Framework 1.1
  • Microsoft ASP.NET 1.1



Beta Information

This article discusses a Beta release of a Microsoft product. The information in this article is provided as-is and is subject to change without notice.

No formal product support is available from Microsoft for this Beta product. For information about how to obtain support for a Beta release, see the documentation that is included with the Beta product files, or check the Web location where you downloaded the release.



SYMPTOMS

Consider the following scenario. You install Microsoft ASP.NET for the Microsoft .NET Framework 1.1 on Microsoft Windows Vista. You then create an ASP.NET page. You request the ASP.NET page, and the worker process stops responding. In this scenario, you receive an error message that states that the worker process was closed because of a Data Execution Prevention (DEP) violation.

Note ASP.NET for the .NET Framework 1.1 will not run on Windows Vista with Microsoft Internet Information Services (IIS) 7.0.

CAUSE

This problem occurs because the .NET Framework 1.1 runtime does not support DEP. IIS 7.0 on Windows Vista only supports the full isolation ASP.NET process model. The full isolation ASP.NET process model requires that the no execute (NX) feature is enabled.

Note By default, the .NET Framework 1.1 is not included with Windows Vista.

RESOLUTION

To resolve this problem, apply the .NET Framework 1.1 Service Pack 1 (SP1). After you apply this service pack, ASP.NET 1.1-based applications can run under IIS 7.0.

For more information.NET Framework 1.1 Service Pack 1, click the following article number to view the article in the Microsoft Knowledge Base:

885055 How to obtain Microsoft .NET Framework 1.1 Service Pack 1


STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

MORE INFORMATION

DEP is also known as the NX feature. DEP was introduced into the Windows operating system in Windows XP SP2 and Windows Server 2003 SP1. When you run applications on hardware that supports NX, all code the runs from pages that are not marked as EXECUTE causes a hardware fault or an access violation. DEP helps prevent stack overruns and heap overrun attacks. The following versions of the .NET Framework runtime have additional NX support:

  • The .NET Framework 1.0 SP3
  • The .NET Framework 1.1 SP1
  • The .NET Framework 2.0

All other versions of the .NET Framework runtime do not load if NX is enabled. Windows provides application shims in Windows XP, Windows Server 2003, and Windows Vista. These application shims disable NX for any process that loads a non-NX compliant runtime.

NX is turned on or turned off for each process when the process is created. Therefore, a process cannot toggle between two settings when it starts. This is an important consideration for IIS and ASP.NET.

IIS 6.0 on Windows Server 2003 supports two ASP.NET process models. The full isolation ASP.NET process model uses the W3wp.exe file to host the runtime. The in-process ASP.NET process model uses the Aspnet_wp.exe file to host the runtime. IIS 7.0 on Windows Vista only supports the full isolation ASP.NET process model. Windows XP only supports the in-process ASP.NET process model. The full isolation ASP.NET process model is not flagged by the Windows NX application shims. Because it is not flagged, the previous common language runtime (CLR) can load with errors when NX is enabled.

This problem does not occur in Windows XP SP2 and in Windows Server 2003 SP1. Windows XP SP2 successfully runs ASP.NET for the .NET Framework 1.1 because it uses the in-process ASP.NET process model with IIS. The .NET Framework 1.1 SP1 is included with Windows Server 2003 SP1. Therefore, there is no option to run ASP.NET for the original release version of the .NET Framework 1.1 with NX enabled in Windows Server 2003 SP1.

Keywords: kbinfo kbtshoot kbbug kbprb kbiis KB916440