目前,我的理解如下。
以上内容相当容易消化(与Apache提供扩展的方式非常相似)。但是,我对“处理程序”,“处理程序映射”和“应用程序”没有清楚的了解。
有了这个最后一个问题,如果我启用了一个用Delphi构建的ISAPI DLL,它与应用程序有什么区别?可以通过两种不同的方式将我的ISAPI DLL作为可执行文件添加到IIS中,一种是通过常规路由,另一种是通过添加“应用程序”?
(注意:我确实理解“应用程序池”用于隔离生成动态内容的可执行文件。)
编辑:在IIS开发人员指南中,有一个小段有助于澄清“模块”和“处理程序”之间的区别,引用如下。
在计划开发IIS功能时,您应该问的第一个问题是此功能是负责提供对特定URL /扩展的请求,还是基于任意规则应用于所有/某些请求。在前一种情况下,您应该是一个处理程序,在后者中,应该是一个模块。
基本上,我理解“处理程序”和“模块”都是IIS功能的扩展,但前者对特定请求的响应(例如,PHP处理程序响应文件名以“.php结尾的每个请求”。 “)而后者提供类似装饰器的功能(例如,GZIP压缩处理程序的响应主体)。参考:http://www.iis.net/learn/develop/runtime-extensibility/developing-iis-modules-and-handlers-with-the-net-framework
我现在的主要问题是, IIS7“应用程序”和II7“处理程序”之间有什么区别?
答案 0 :(得分:1)
处理程序通常用于处理对特定类型的页面扩展或网址的请求。例如,许多不同的扩展类型*.asp
,*.aspx
,*.php
等中的每一种都有自己的处理程序类型,如IIS 7 +的MMC处理程序映射功能中所定义。
在旧学校IIS6的说法中,它们相当于脚本地图。
有关详细信息,请参阅:
http://www.iis.net/configreference/system.webserver/handlers
模块由插入应用程序中的请求管道的代码组成,用于在每次请求时执行特定的功能。例如,日志记录或某种开箱即用的安全功能。
有关详细信息,请参阅:
应用程序由您网站上运行的所有网站代码(包括您可能编写的任何模块)组成。默认情况下,单个网站将具有称为根应用程序的单个应用程序。也可以在同一个网站内创建其他应用程序,这些应用程序和会话状态与其他应用程序不同。
有关详细信息,请参阅:
http://www.iis.net/configreference/system.applicationhost/sites/site/application