昨晚我正在部署一个 ASP.NET MVC 应用程序,发现将 IIS7 设置为集成模式进行部署的工作量较少。我的问题是有什么区别?使用其中一种有何影响?
经典模式(IIS6 及以下的唯一模式)是 IIS 仅直接与 ISAPI 扩展和 ISAPI 过滤器一起使用的模式。实际上,在这种模式下,ASP.NET 只是一个 ISAPI 扩展(aspnet_isapi.dll)和一个 ISAPI 过滤器(aspnet_filter.dll)。IIS 只是将 ASP.NET 视为在 ISAPI 中实现的外部插件,并像黑匣子一样使用它(仅当它需要向 ASP.NET 发出请求时)。在这种模式下,ASP.NET 与 PHP 或其他 IIS 技术没有太大区别。
另一方面,集成模式是 IIS7 中的一种新模式,其中 IIS 管道与 ASP.NET 请求管道紧密集成(即完全相同)。ASP.NET 可以看到它想要处理的每个请求并在此过程中进行操作。ASP.NET 不再被视为外部插件。它完全混合并集成在 IIS 中。在这种模式下,ASP.NETHttpModule基本上具有与 ISAPI 过滤器一样多的功能,并且 ASP.NETHttpHandler可以具有与 ISAPI 扩展几乎相同的功能。在这种模式下,ASP.NET 基本上是 IIS 的一部分。
HttpModule
HttpHandler