Actions
Share

Troubleshooting Integrated Pipeline issues

In IIS 7.X there are two modes your application can run in. More information about the basics can be found here.

Some common things to look for in your code moving from IIS 6 to IIS 7 would be:

You may need to put the follow entry in your Web.config
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>

If you are using URL validation the "+" character is rejected in URL

HttpRuntime.ProcessRequest() does not work in Integrated Mode.

Impersonate identity is not valid using FormsAuthentication

FileAuthorizationModule.CheckFileAccessForUser always returns 'True'

IIS always rejects new lines in response headers (even if ASP.NET enableHeaderChecking is set to false)

DefaultHttpHandler is not supported. Applications relying on sub-classes of DefaultHttpHandler will not be able to serve requests.

Both synchronous and asynchronous events fire for each module before the next module executes

Application_OnError is not called for exceptions that occur in HttpApplication::Init

Server.ClearError in EndRequest does not clear exception message

Integrated mode applications may write to a response in EndRequest after an exception has been formatted and written to the response

ASP.NET no longer suppresses the content type when the response is empty

Default Authentication_OnAuthenticate does not raise and event

Request.RawUrl contains the new query string after RewritePath is called

PassportAuthentication module is not part of the Integrated pipeline

Large, valid forms auth tickets (length <= 4096 bytes) present in the query string are rejected by IIS 7.0

In Integrated mode, the ASP.NET request time-out is applied multiple times during the request, allowing the request to execute longer

Trace settings are not transferred to Server.Transfer target page

The method Httpcontext.Current.Response.Write() cannot work in Application_Onstart()

HttpRequest.LogonUserIdentity throws an exception when accessed before PostAuthenticateRequest

In Integrated mode, ASP.NET modules will receive the first unauthenticated request to IIS when Anonymous authentication is disabled

ASP.NET cannot impersonate the client identity until PostAuthenticateRequest

Content-Type header is not generated when charset and content type are set to empty string

Response headers are removed in Integrated mode after calling ClearHeader in a custom IHttpModule

In Integrated mode, IIS always rejects new lines in response headers (even if ASP.NET enableHeaderChecking is set to false)

PreSendRequestHeaders and PreSendRequestContent events will raise together for each module

The ordering of modules is reversed for PreSendRequestHeaders and PreSendRequestContent when using Integrated mode

In Integrated mode, threading and queuing settings in are ignored

If a configuration file error is encountered when using Integrated mode, IIS, not ASP.NET, generates the error message

In Integrated mode, ASP.NET applications must subscribe to pipeline events during a module’s Init call

More information about moving an application from IIS 6 to IIS 7 can be found here:
http://msdn.microsoft.com/en-us/library/bb515251.aspx

Some content also collected from:
http://www.jeff.wilcox.name

Article ID: 666, Created On: 8/8/2009, Modified: 8/8/2009

Feedback (0)