如何:在 IIS 中配置 HTTP 处理程序扩展名

更新:2007 年 11 月

默认情况下,Internet 信息服务 (IIS) 在提供服务时只将针对某些文件类型的请求传递给 ASP.NET。具有 .aspx、.asmx 和 .ashx 等文件扩展名的文件已经映射到 ASP.NET ISAPI 扩展 (Aspnet_isapi.dll)。这适用于 IIS 6.0、在经典模式下运行的 IIS 7.0 以及在集成模式下运行的 IIS 7.0 中的托管处理程序。

若要使 IIS 将其他文件扩展名传递到 ASP.NET,必须在 IIS 中注册这些扩展名。有关处理程序如何参与应用程序生命周期的更多信息,请参见 IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述IIS 7.0 的 ASP.NET 应用程序生命周期概述

在 IIS 6.0 中映射文件扩展名

  1. 打开 IIS 管理器。

  2. 展开 Web 服务器计算机的节点,展开**“网站”,然后展开“默认网站”**。

  3. 右击应用程序的名称,然后单击**“属性”**。

    Bb515343.alert_note(zh-cn,VS.90).gif说明:

    有关如何创建 ASP.NET 应用程序的信息,请参见如何:在 IIS 6.0 中创建和配置本地 ASP.NET 网站

  4. 单击**“虚拟目录”选项卡,然后单击“配置”**。

  5. 在**“映射”选项卡上,单击“添加”**。

    将显示**“添加/编辑应用程序扩展名映射”**对话框。

  6. 在**“可执行文件”**框中,键入或浏览至 Aspnet_isapi.dll 文件。默认情况下,该文件位于下面的位置:

    %windows%\Microsoft.NET\Framework\version\
    
    Bb515343.alert_note(zh-cn,VS.90).gif说明:

    可以从其他映射(如 .aspx 文件的映射)获得完整路径和文件名。

  7. 在**“扩展名”**框中键入文件扩展名,例如“.sample”。

    Bb515343.alert_note(zh-cn,VS.90).gif说明:

    确保包含句点 (.) 作为文件扩展名的一部分。

  8. 根据文件扩展名在应用程序中表示的内容,选中**“确认文件是否存在”**复选框。请选择下列选项:

    • True。文件扩展名表示应用程序中的物理文件。在这种情况下,如果磁盘上不存在请求的文件,IIS 将显示错误。

    • False。文件扩展名不表示物理文件。扩展名由映射到 ASP.NET 中的扩展的类动态处理。

  9. 单击**“确定”**,然后关闭 IIS 管理器。

在以经典模式运行的 IIS 7.0 中映射文件扩展名

  1. 打开 IIS 管理器。

    Bb515343.alert_note(zh-cn,VS.90).gif说明:

    在 和 Windows Server 2008 中,如果启用了用户帐户控制 (UAC) 功能,则该功能会提示您继续访问管理器。有关更多信息,请参见 User Account Control Overview(用户帐户控制概述)。

  2. 展开 Web 服务器计算机的节点,展开**“站点”,然后展开“默认网站”**。

  3. 选择应用程序的节点。

    显示**“功能视图”**窗格。

  4. 在**“功能视图”中双击“处理程序映射”**。

  5. 单击**“操作”窗格中的“添加脚本映射”**。

    显示**“添加脚本映射”**对话框。

  6. 在**“添加脚本映射”**对话框中,指定下面的内容:

    • 请求路径。要映射的文件名或文件扩展名。

    • 可执行文件。将处理请求的 .exe 或 .dll 文件的路径。对于经典模式,请指定 ASP.NET ISAPI 扩展 (Aspnet_isapi.dll)。

    • 名称。描述性名称。

  7. 单击**“确定”关闭“添加脚本映射”**对话框。

    Bb515343.alert_note(zh-cn,VS.90).gif说明:

    使用 IIS 7.0 中的 IIS 管理器添加自定义处理程序扩展相当于在 ASP.NET 应用程序的 Web.config 文件中注册该处理程序扩展。注册操作会在 system.webServer 组的 handlers 节中添加一个 handler 元素。

  8. 打开应用程序的 Web.config 文件。

  9. 找到 system.web 节的 httpHandlers 元素,并为文件扩展名添加一个项。

    Bb515343.alert_note(zh-cn,VS.90).gif说明:

    文件扩展名必须在 httpHandlers 元素和 handlers 元素中都进行注册。

在以集成模式运行的 IIS 7.0 中映射文件扩展名

  1. 执行上述过程中的第 1 步至第 3 步。

  2. 单击**“操作”窗格中的“添加托管处理程序”**。

    显示**“添加托管处理程序”**对话框。

  3. 在**“添加托管处理程序”**对话框中,指定下面的内容:

    • 请求路径。要映射的文件名或文件扩展名。

    • 类型。托管处理程序的类型(类)名称。如果处理程序是在 ASP.NET 应用程序的 App_Code 文件夹中定义的,则其类型名将出现在下拉列表中。

    • 名称。描述性名称。

  4. 单击**“确定”关闭“添加托管处理程序”**对话框。

    Bb515343.alert_note(zh-cn,VS.90).gif说明:

    使用 IIS 7.0 中的 IIS 管理器添加自定义处理程序扩展相当于在 Web.config 文件中注册该处理程序扩展。

    Bb515343.alert_note(zh-cn,VS.90).gif说明:

    对于在以集成模式运行的 IIS 7.0 中提供自定义扩展的处理程序,只需在 handlers 元素中进行注册。如果您还希望在 httpHandlers 元素中保留该注册,请在 system.webServer 节中创建一个 validation 元素(如果该元素不存在),并将其 validateIntegratedModeConfiguration 属性设置为 false。有关更多信息,请参见 如何:禁止显示 IIS 7.0 注册警告

请参见

任务

如何:注册 HTTP 处理程序