I can’t say I ever gave much though to the differences between IIS’s Integrated and Classic modes before. If it worked, it worked. I never had a need to use one over the other…. until the other day.
We recently got some nice new servers and as well as moving an application to the servers, it’s being upgraded at the same time. Exciting times and all was going swimmingly until I began looking into updating the basic authentication process to use Siteminder Authentication. That’s when I took note that the website was using Integrated mode. Siteminder requires Classic mode. No problem. I’ll just switch the website to use Classic mode and…. IIS is no longer serving up the aspx pages? not good.
So I dug a little deeper. There’s some great explanations about the differences between Classic and Integrated. Here’s one…
That makes sense with Siteminder since it uses an ISAPI filter to intercept http requests.
That still doesn’t explain why switching to Classic mode breaks the website but it suggested ISAPI filters were to blame. Initially I thought perhaps the Siteminder ISAPI filter was the problem. Disabling that didn’t fix the issue.Checking the Siteminder handler mappings didn’t show anything strange either.
Next, checking the aspx ISAPI filters. That was the problem.
The IIS installation process installed all the aspx filters but it didn’t ‘allow’ them to the ISAPI restrictions list. So the solution….
– Open IIS and select your website.
– Open the handler mappings and select the aspx handler. For our 64 bit server it’s called PageHandlerFactory-ISAPI-4.0-64
– Double click the aspx handler and select ‘Request Restrictions’.
– Then click OK, and OK again.
– you should then get a pop up message to allow the handler. Click Yes.
You’ve now enable the aspx handler and shouldn’t have any issues with Classic mode when dealing with asp.net web sites.