在II7中,"Application"、"Module"和"Handler"有什么区别?



当前,我的理解如下。

  • 当IIS收到请求时,它会在几个状态之间过渡(begin_request,execute_request_handler,end_request等)。
  • "模块"是一个DLL(动态链接库),它在其中一个或多个请求状态下扩展了IIS的功能。例如," php模块"是一个DLL,它可以在execute_request_handler状态下钩到IIS中以解析和执行PHP脚本。

上述很容易消化(并且与Apache提供的扩展非常相似)。但是,我对"处理程序","处理程序映射"one_answers"应用程序"没有清楚的了解。

  1. 什么是"处理程序"?什么是"处理程序映射"?
  2. "模块"one_answers"处理程序"有什么区别?
  3. "模块"one_answers"应用程序"有什么区别?

在最后一个问题中,如果我启用了使用Delphi构建的ISAPI DLL,则该应用程序和应用程序有什么区别?我的ISAPI DLL可以通过两种不同的方式添加为IIS的可执行文件,一种是通过常规路线,另一个通过添加"应用程序"?

(注意:我知道"应用程序池"用于隔离产生动态内容的可执行文件。)

编辑:在IIS开发人员指南中,有一个小段落,有助于阐明"模块"one_answers"处理程序"之间的区别,下面引用。

计划开发IIS功能时,您应该问的第一个问题是该功能是为特定URL/扩展程序提供请求的原因,还是根据任意规则适用于所有/某些请求。在前一种情况下,您应该是一个处理程序,在后者中,一个模块。

本质上,我知道"处理程序"one_answers"模块"都是IIS功能的扩展,但前者对特定请求的响应(例如,PHP处理程序响应文件名以" .php结尾"的每个请求响应。")虽然后者提供了类似装饰的功能(例如,GZIP压缩处理程序的响应主体)。参考:http://www.iis.net/learn/develop/runtime-extensibility/developing-iis-modules-andhandlers-with-the-net-net-framework

我现在的主要问题是, IIS7"应用程序"和II7"处理程序"?

有什么区别

处理程序

a 处理程序通常用于处理特定类型的页面扩展名或URL的请求。例如, *.asp*.aspx*.php等许多不同的扩展类型中的每一种都有自己的处理程序类型,如IIS 7 的MMC处理程序映射功能。

在老式的IIS6列表中,它们等同于脚本地图。

有关更多信息,请参见:

http://www.iis.net/configreference/system.webserver/handlers

模块

模块由代码组成,这些代码将在您的应用程序中插入请求管道,以在每个请求时执行特定功能。例如,记录或某种不可用的安全功能。

有关更多信息,请参见:

http://www.iis.net/configreference/system.webserver/modules

应用程序

an 应用程序由您网站上运行的所有网站代码(包括您可能已经编写的任何模块)组成。默认情况下,一个网站将具有一个称为root应用程序的单个应用程序。也可以在同一网站内创建其他应用程序,该应用程序将具有自己的应用程序和会话状态与其他应用程序不同。

有关更多信息,请参见:

http://www.iis.net/configreference/system.applicationhost/sites/site/site/application

最新更新