
在 IIS 7.0 中注册自定义 HTTP 处理程序
在 IIS 7.0 中,应用程序可以在经典模式或集成模式下运行。在经典模式下,请求的处理方式与在 IIS 6.0 中大致相同。在集成模式下,IIS 7.0 使用管道(管道使其可以与 ASP.NET 共享请求、模块和其他功能)来管理请求。
对于 IIS 7.0,处理程序注册要求在 Web.config 文件或 IIS 管理器中注册处理程序。因为在 IIS 7.0 中进行集中管理,所以应用程序的 Web.config 文件中的更改会在该应用程序的 IIS 管理器接口中反映出来,反之亦然。在后面的过程中,处理程序是在 Web.config 文件中注册的。
对于在经典模式和集成模式下运行的 IIS 7.0,注册处理程序的过程是不相同的。请根据您要使用的 IIS 模式执行相应的过程。
在运行于经典模式下的 IIS 7.0 中注册处理程序
-
如果网站还没有 Web.config 文件,请在该站点的根目录下创建一个这样的文件。
-
将下面突出显示的元素添加到 Web.config 文件中。
说明: |
|---|
| 替换为 aspnet_isapi.dll 文件的正确路径。该 .dll 文件位于安装 .NET Framework 的文件夹中。默认情况下,此文件夹为 C:\WINDOWS\Microsoft.NET\Framework\版本。 |
|
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="*.sample"
type="HelloWorldHandler"/>
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add verb="*" path="*.sample"
name="HelloWorldHandler"
type="HelloWorldHandler"
modules="IsapiModule"/>
scriptProcessor="%path%\aspnet_isapi.dll"
</handlers>
</system.webServer>
</configuration> |
该配置元素按类名注册自定义处理程序,并将 .sample 文件扩展名映射到该处理程序。
说明: |
|---|
| 由于要注册自定义文件扩展名,因此在 handlers 节和 httpHandlers 节中都要注册该处理程序。为了向后兼容,在经典模式下要使用 modules 属性将该处理程序指定为 ISAPI 模块。使用 scriptProcessor 属性指定 ASP.NET ISAPI dll 的路径。name 属性在 handlers 节中是必需的。 |
在运行于集成模式下的 IIS 7.0 中注册处理程序
-
如果网站还没有 Web.config 文件,请在该站点的根目录下创建一个这样的文件。
-
将下面突出显示的元素添加到 Web.config 文件中。
|
<configuration>
<system.webServer>
<handlers>
<add verb="*" path="*.sample"
name="HelloWorldHandler"
type="HelloWorldHandler"/>
</handlers>
</system.webServer>
</configuration> |
该配置元素按类名注册自定义处理程序,并将 .sample 文件扩展名映射到该处理程序。
说明: |
|---|
| 在 handlers 节中进行注册,但不在 httpHandlers 节中进行。需要 name 属性。 |