这就是我想要做的事情:
查询:
答案 0 :(得分:6)
以下是我要找的信息:
如果您想注册自定义 IIS 7 Web服务器上的HTTP处理程序 等级,你必须编译你的HTTP 处理程序进入强名称程序集 并将其部署到全球大会 缓存(GAC),因为IIS 7只选择 部署到GAC的程序集。它 不会拾取已部署的程序集 其他任何地方,如垃圾箱 特定网站的目录或 网络应用程序。
我们的目标是在Web服务器级别添加此处理程序。在GAC中部署处理程序后,打开Web服务器级别提供的web.config(右键单击并浏览 - >打开web.config show here)并在处理程序部分中输入类似的内容(完全限定名称)类):
<handlers>
<add name="Ch8_RssHandler" path="*.rss" verb="*"
type="ProIIS7AspNetIntegProgCh8.RssHandler, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=369d834a77" preCondition="integratedMode" />
</handlers>
注意:信息片段(第1段和代码样本)取自本书:
Professional IIS 7 and ASP.Net Integrated Programming by Dr. Shahram Khosravi
看起来像一本非常好的书:)
答案 1 :(得分:3)
这篇MSDN文章How to: Configure an HTTP Handler Extension in IIS解释了您将要做的事情。请参阅集成模式的段落。
.zeip的文件扩展名必须在httpHandlers元素和处理程序元素中注册。
您必须在“操作”窗格中单击“添加托管处理程序”。
在IIS 7.0中使用IIS管理器添加自定义处理程序扩展等同于在Web.config文件中注册处理程序扩展。
答案 2 :(得分:2)
我在VS2012进行了测试
我的处理程序就像这样
namespace MyProject
{
public class ZipHandler: IHttpHandler
{
public bool IsReusable { get { return true; } }
public void ProcessRequest(HttpContext context) { ... }
}
}
我的web.config是
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
<handlers>
<add
name="ZipHandler"
path="*.zip"
verb="*"
type="MyProject.ZipHandler"
preCondition="integratedMode"
/>
</handlers>
</system.webServer>
</configuration>
通过这种方式,我可以请求“foo.zip”并让我的处理程序获得请求。
还有来自Rick Strahl的帖子可以帮助您解决有关处理程序和模块的问题:HttpModule and HttpHandler sections in IIS 7 web.config files