惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

AI
AI
博客园 - 叶小钗
Blog — PlanetScale
Blog — PlanetScale
Microsoft Azure Blog
Microsoft Azure Blog
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
Martin Fowler
Martin Fowler
阮一峰的网络日志
阮一峰的网络日志
D
Docker
Jina AI
Jina AI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The Register - Security
The Register - Security
J
Java Code Geeks
S
SegmentFault 最新的问题
月光博客
月光博客
G
Google Developers Blog
美团技术团队
Last Week in AI
Last Week in AI
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
T
The Blog of Author Tim Ferriss
腾讯CDC
Recent Announcements
Recent Announcements
Recorded Future
Recorded Future
The Cloudflare Blog
有赞技术团队
有赞技术团队
博客园_首页
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
B
Blog
I
InfoQ
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
F
Fortinet All Blogs
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Microsoft Security Blog
Microsoft Security Blog
MongoDB | Blog
MongoDB | Blog
爱范儿
爱范儿
D
DataBreaches.Net
F
Full Disclosure
M
MIT News - Artificial intelligence
博客园 - 司徒正美
H
Help Net Security

博客园 - Laeb

ASP.NET Web 页面语法概览 ASP.NET Web 页面中的新事物 渐增的许可 介绍 ASP.NET Web 页面 管理工具 ASP.NET Web 页面概览 检测何时需要更改安全策略 安全策略管理的概览 System.Net 类的最佳习惯 异常处理的最佳习惯 面向世界应用程序开发的最佳习惯 使用 ASP.NET 所创建的 XML Web 服务的设计指南 为并发执行而创建应用程序与组件的指南 ASP.NET 控件与可访问 ASP.NET 中的可访问支持 实践:创建自定义 HTTP 模块 HTTP 模块介绍 实践:创建 HTTP 处理器工厂 实践:创建同步 HTTP 处理器
实践:注册 HTTP 处理器
Laeb · 2007-03-17 · via 博客园 - Laeb

在你创建自定义的 HTTP 处理器类之后,你就必须把它注册到 Web.config 文件中。这允许 ASP.NET 调用该处理器来服务于你需要该 HTTP 服务器进行处理并且拥有特定文件扩展名的资源请求。

在 Web.config 文件中注册 HTTP 处理器

如果要让 ASP.NET 把请求发送到自定义的 HTTP 处理器,你就必须使用自定义 HTTP 处理器来注册特定的文件扩展名。你可以在应用程序的 Web.config 文件中完成这个任务。

注册 HTTP 处理器
  1. 编译 HTTP 处理器的 .NET 类并且把结果汇编集复制到应用程序虚拟根目录下的 Bin 目录中,或者把处理器的源代码存放到应用程序的 App_Code 目录中。

    关于 HTTP 处理器的范例,请参考:[实践:创建同步 HTTP 处理器]。

  2. 你可以在应用程序的 Web.config 文件中创建一个 httpHandlers 元素(ASP.NET 设置结构)配置段来注册 HTTP 处理器。

    下列代码说明了如何注册一个对资源 SampleHandler.new 的请求产生回应的 HTTP 处理器。该处理器被定义成汇编集 SampleHandlerAssembly 中的 SampleHandler 类。

    <configuration>
      <system.web>
        <httpHandlers>
          <add verb="*" path="SampleHandler.new" 
            type="SampleHandler, SampleHandlerAssembly" />
        </httpHandlers>
      <system.web>
    </configuration>

    下列代码把所有对于扩展名是 SampleFileExtension 的文件的 HTTP 请求都映射到自定义 HTTP 处理器类 SampleHandler2 中。在这种情况下的处理器代码应该位于 App_Code 目录中,因此你不需要指定任何汇编集。

    <configuration>
      <system.web>
        <httpHandlers>
          <add verb="*" path="*.SampleFileExtension" 
             type="SampleHandler2 " />
        </httpHandlers>
      <system.web>
    </configuration>

配置 IIS 的 HTTP 处理器扩展

Internet Information Services(IIS)只会把特定文件类型的请求传递给 ASP.NET 的服务。默认时,拥有文件扩展名 .aspx、.ascx、.asmx 和 .ashx 的文件都已经被映射到了 ASP.NET ISAPI 扩展(Aspnet_isapi.dll)中。因此,如果要让 IIS 把自定义的文件扩展名传递给 ASP.NET,你就必须在 IIS 中注册这些扩展名。关于更多信息,请参考:[ASP.NET 应用程序生命周期概览]。

在 IIS 中映射文件扩展名
  1. 在 Windows 中,打开 Internet Information Services(IIS)Manager。
  2. 打开本地计算机节点,打开 Web Sites 节点,然后打开 Default Web Site 节点。
  3. 右击应用程序的名称,然后点击 Properties。
  4. 点击 Directory 制表页(或者是 IIS 6.0 中的 Virtual Directory 制表页),然后点击 Configuration。
  5. 在 Mappings 制表页中,点击 Add 并且为你需要 IIS 转发给 ASP.NET 的文件扩展名创建一个新的关联。

    提示:点击 Edit 按钮可以查看现有的关联来检测可执行文件所使用的值。

  6. 如果你需要你的处理器在运行的时候忽略已请求的文件扩展名是否已经存在,那么就可以清除 Verify that file exists 复选框。