Dropping support for IIS classic mode in Kentico 9
This blog post is a part of the series started by Radek Matej - Fighting Featuritis. In this particular post, I will share with you details about why we are dropping support for IIS Classic mode in Kentico 9.
First, a little introduction for those of you who don't know what IIS classic mode is. I will simplify certain technical elements but if you are interested in more details, search for IIS classic mode on MSDN or in the IIS documentation. Every request on an IIS server is processed by a certain program/application. One of those is ASP.NET runtime (your ASP.NET website runs within this runtime). Now, ASP.NET runtime could run in two different pipeline modes - classic and integrated. The classic mode was the first and the only mode available at the time of the first ASP.NET version. Back then, ASP.NET was basically a plugin in the IIS processing pipeline. It worked, but it was limited in that ASP.NET did not have full control over the request. The integrated mode changed that. As the name suggests, it is fully integrated with IIS. It has its own processing pipeline (instead of being a part of the IIS processing pipeline) and so, ASP.NET has full control over the request. This mode is the default one in IIS in several versions now. Moreover, the IIS classic mode is considered as obsolete, and some ASP.NET features don't support it anymore.
Kentico used to support both of them for many years but with Kentico 9 we have decided to drop the support for the classic mode. Let me give you the main reasons behind this decision:
- By dropping this support, we can save some resources internally (for testing and maintaining IIS classic mode code) and deliver something more valuable instead.
- IIS classic mode is obsolete - Microsoft doesn't recommend the use of this mode and considers this mode to be obsolete.
- Over the years, we have seen a significant decrease in support tickets that are related to IIS classic mode. And, if somebody still using the classic mode contacts us, the first thing we recommend is to switch it to the integrated mode, which typically resolves the issue. It has been a while since we found a project where the person couldn't switch to the integrated mode.
What should you do?
First of all, you should make sure that you are running the IIS integrated mode. You can find this information in the IIS Manager; it’s a property of your application pool. If you don't have access there, ask your administrator or hosting provider which pipeline mode you are using. Now:
- Integrated mode - there is nothing to worry about, and you are done.
- Classic mode - in most cases you can just switch to the integrated mode, and nothing really happens. But you might have some certain code that depends on the classic mode. In this case, please let me know at firstname.lastname@example.org and I will be happy to discuss the issues and help you to resolve them.