Friday, May 18

Messy MSDN help

Today the messy MSDN wasted me 1 hour.

By somehow I know there is a setting in the web.config to setup requestPriority as "Normal", "High", or "Critical". If it is set as Critical, the IIS Web server will server HTTP request in high priority, ignore other tasks. Because the server I am using is designed for IIS Web server solely, setting this value can help improving the performance.

But after I deployed this web.config, when I open IIS property of this website, I got error message:
Unrecognized attribute 'requestPriority'. Note that attribute names are case-sensitive.
So in Visual Studio 2005, I selected this keyword and hit F1--This is the way you get help from MSDN Library. I was directed to a help document:
.NET Framework General Reference
httpRuntime Element (ASP.NET Settings Schema)


....

requestPriority:

Optional HttpRequestPriority attribute.

Specifies the priority of all incoming requests to this application.

This attribute can be one of the following possible values.

Value Description

Critical

Specifies that a request is not subject to rejection, if the managed application queue is full. However, the request will be rejected, if the ISAPI threshold has been exceeded. The request is inserted at the end of the high priority queue, which is serviced before the normal queue.

High

Specifies that a request is subject to rejection, if the application queue is full. If the queue is not full, the request is inserted at the end of the high priority queue, which is serviced before the normal queue.

Normal

Specifies that a request is serviced as it normally would be, without elevated priority. This is the default.

This attribute is new in the .NET Framework version 2.0.

The default is Normal.

And there is default configuration for the httpRuntime element:
< httpruntime
executiontimeout="110">
...
requestPriority="Normal"
...
apartmentThreading="false"

/>
So I copy/paste the keyword and check it twice since the IIS mention "case sensitive". It didn't work. The document says this attribute only works for .NET Framework 2.0, so I double checked the ASP.NET version: 2.0.50727. I actually changed it to .NET 1.0, which apparently a wrong option, then changed it back. Same situation.

I had to Google for 15 minutes, until I found a simple reply in a news group:
Development Tray
Hello.

How can I to set requestPriority to "Critical" for an specific page in ASP.NET 2.0?

Thank you.

Author
26 Mar 2006 8:19 PM
Juan T. Llibre
requestPriority was killed after Beta 1.
If it is "killed", why is it shown in my MSDN Library? I searched keyword httpRuntime from the MSDN, came to an online help document with the same title:
.NET Framework General Reference
httpRuntime Element (ASP.NET Settings Schema)


....
In this document it doesn't mention requestPriority. But in the "default configuration " section, the "requestPriority" is still there:
< httpruntime
executiontimeout="110">
...
requestPriority="Normal"
...
apartmentThreading="false"

/>
Now I believe Microsoft actually canceled "requestPriority". But it forgets to delete it from the MSDN Library (The Visual Studio 2005 and MSDN I have is NOT Beta!), and it decided not to mention this keyword at all: It would be better if it lists this keyword and mention it is deprecated after 2.0.6xxx... And then it makes a mistake not to remove it from the default configuration!

Labels: ,