Help and Support
 

powered byLive Search

You may receive an error message, or the computer may stop responding, when you host Web applications that use ASP.NET on a computer that is running Windows Server 2003

Article ID:911716
Last Review:December 3, 2007
Revision:1.5

SYMPTOMS

When you host Web applications that use Microsoft ASP.NET on a computer that is running Microsoft Windows Server 2003, you may experience decreased performance. This issue may occur when you host the Web applications in multiple application pools on a multiprocessor computer. Additionally, you may experience one or more of the following issues when available memory is low:
You may receive exceptions of type System.OutOfMemoryException.
You may receive the following error message when you try to open an ASP.NET Web page:
Server Application Unavailable
The computer may stop responding.

Back to the top

CAUSE

These issues occur because the Microsoft .NET Framework common language runtime (CLR) uses the Server garbage collector (GC) on multiprocessor computers. This is the default behavior. The Server garbage collector is optimized for scalable throughput on multiprocessor computers. To reduce contention and to improve garbage collector performance on multiprocessor computers, the Server garbage collector creates one heap per processor for parallel collections. Therefore, the Server garbage collector consumes lots of memory when you host multiple ASP.NET worker processes. This behavior may cause the issues that are described in the "Symptoms" section.

Back to the top

WORKAROUND

To work around these issues, configure the .NET Framework common language runtime to use the Workstation garbage collector. The Workstation garbage collector is optimized to reduce garbage collector pause times for interactive applications. Additionally, the Workstation garbage collector creates only one heap. Therefore, the Workstation garbage collector uses less memory when you run applications on multiprocessor computers.

To configure the .NET Framework common language runtime to use the Workstation garbage collector, add the following code after the <runtime> element in the Aspnet.config file. The Aspnet.config file is located in one of the following folders:
If you are running the Microsoft .NET Framework 2.0:
%WINDIR%\Microsoft.NET\Framework\v2.0.50727
If you are running the Microsoft .NET Framework 1.1:
%WINDIR%\Microsoft.NET\Framework\v1.1.4322
<configuration>
<runtime>
<gcServer enabled="false"/>
</runtime>
</configuration>
Note The Workstation garbage collector is optimized for low latency. Low latency is typically required for client applications. However, low latency may cause decreased throughput after you configure the .NET Framework common language runtime to use the Workstation garbage collector.

Back to the top

STATUS

This behavior is by design.

Back to the top

MORE INFORMATION

For more information about performance considerations in the .NET Framework, visit the following Microsoft Developer Network (MSDN) Web site:
http://msdn2.microsoft.com/en-us/library/ms973838.aspx (http://msdn2.microsoft.com/en-us/library/ms973838.aspx)

Back to the top


APPLIES TO
Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
Microsoft Windows Server 2003, Standard Edition (32-bit x86)
Microsoft Windows Server 2003, Web Edition
Microsoft .NET Framework 2.0
Microsoft ASP.NET 2.0
Microsoft .NET Framework 1.1
Microsoft ASP.NET 1.1

Back to the top

Keywords: 
kbtshoot kbprb KB911716

Back to the top

Article Translations

 

Other Support Options

  • Need More Help?
    Contact a Support professional by Email, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.