IIS7中的'经典'和'集成'管道模式有什么区别?

 2023-02-17    456  

问题描述

我昨晚正在部署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中的'经典'和'集成'管道模式有什么区别?

另一方面,

集成模式是IIS7中的一种新模式,其中IIS管道与ASP.NET请求管道紧密集成(即相同). ASP.NET可以看到它想要的所有请求并在此过程中操纵事物. ASP.NET不再被视为外部插件.它完全混合并集成在IIS中.在这种模式下,ASP.NET HttpModule基本上具有与ISAPI过滤器所具有的功率一样多,而ASP.NET HttpHandler S可以具有与ISAPI扩展一样的等效能力.在此模式下,ASP.NET基本上是IIS的一部分.

其他推荐答案

集成应用池模式

当应用程序池处于集成模式时,您可以利用优势
IIS和ASP.NET的集成请求处理体系结构.
当应用程序池中的工作流程收到请求时,
请求通过有序的事件列表.每个事件都调用
必要的本地和托管模块来处理该部分的部分
请求并生成响应.

集成的运行应用程序池有几个好处
模式.首先,IIS和ASP.NET的请求处理模型是
集成到统一的过程模型中.该模型消除了步骤
以前在IIS和ASP.NET中重复了
验证.此外,集成模式可实现可用性
所有内容类型的托管功能.

经典应用程序池模式

当应用程序池处于经典模式时,IIS 7.0手柄请求
如IIS 6.0工作过程隔离模式. ASP.NET请求首先去
通过IIS中的本机处理步骤,然后将
as.net_isapi.dll用于处理托管代码
运行.最后,请求通过IIS返回以发送
响应.

IIS和ASP.NET请求处理模型的分离
导致重复某些处理步骤,例如
身份验证和授权.此外,托管代码功能,
例如表格身份验证,仅适用于ASP.NET
您已映射所有脚本的应用程序或应用程序
请求由Aspnet_isapi.dll.

处理

确保测试您现有的应用程序以兼容
集成模式在将生产环境升级到IIS 7.0之前
并在集成模式下将应用程序分配给应用程序池.
您应该只在经典中添加应用程序池
模式如果应用程序无法在集成模式下工作.例如,
您的应用程序可能依赖于IIS传递的身份验证令牌
到托管运行时,并且由于IIS 7.0的新体系结构,
该过程打破了您的应用程序.

取自: defaultapppool和classic .net .net apppool在IIS7中有什么区别?

原始资料来源: IIS简介体系结构

其他推荐答案

IIS 6.0和以前的版本:

ASP.NET通过ISAPI扩展名,C API(基于C编程语言的API)集成,并公开了自己的应用程序和请求处理模型.

这有效地暴露了两个单独的服务器(请求/响应)管道,一个用于本机ISAPI过滤器和扩展组件,另一个用于托管应用程序组件. ASP.NET组件将完全执行ASP.NET ISAPI扩展Bubble ,并且仅在IIS脚本映射配置中映射到ASP.NET的请求.

请求非ASP.NET内容类型: – 图像,文本文件,HTML页面和无脚本ASP页面,由IIS或其他ISAPI扩展程序处理,并且不可见ASP.NET.

.

该模型的主要限制是ASP.NET模块和Custom ASP.NET应用程序代码提供的服务不可用于非ASP.NET请求

什么是脚本地图?

脚本映射用于将文件扩展名与ISAPI处理程序相关联,该文件在请求该文件类型时执行.脚本映射还具有可选的设置,该设置在允许处理请求之前验证与请求关联的物理文件是否存在

一个很好的例子可以是 seen here

IIS 7及以上

IIS 7.0及以上已从地面进行了重新设计,以提供全新的基于C ++ API的ISAPI.

IIS 7.0及更高版本将ASP.NET运行时集成到Web服务器的核心功能,提供了一个统一的(单)请求处理管道,该管道暴露于本机和托管组件,称为模块(IHTTPMODULES)

这是什么意思是IIS 7流程请求到达任何内容类型,NON ASP.NET Modules / native IIS modules和ASP.NET modules在所有阶段都提供请求处理 这就是为什么非非原因ASP.NET内容类型(.html,静态文件)可以由.NET模块处理.

  • 您可以构建新的托管模块( IHttpModule )能够执行所有应用程序内容,并为您的应用程序提供了一组增强的请求处理服务.
  • 添加新的托管处理程序( C6> )

以上所述是小编给大家介绍的IIS7中的'经典'和'集成'管道模式有什么区别?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34205.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。