ASP.Net框架的哪个部分用于在每个到IIS的入站请求中执行任意代码?

时间:2009-03-16 14:53:36

标签: asp.net httpmodule pipeline

我想为通过IIS中的某个网站发出的每个请求运行一个离散的.Net代码块。这是完全隔离的代码 - 它不会影响它之前或之后的任何内容 - 它会从请求中记录一些信息,然后结束。

请注意,这不是我可以放在Application_OnRequestBegin或其他一些ASP.Net文件中的东西,因为我需要这个来执行非.Net文件(PDF,图像等)。它需要执行通常不会访问.Net框架的请求。

我正在寻找一个HTTP模块吗?我的RTFM已经相当多了,但似乎有很多不同的方法来操纵管道,我不太确定我应该使用哪一种。

2 个答案:

答案 0 :(得分:3)

但是,您可以使用HTTP Module来使用它,您需要将所有请求映射到IIS,这可以使用wild card map.来完成。这会对性能产生影响,因为您将通过.net运行时强制所有请求。

您也可以编写自己的ISAPI过滤器,但我相信您必须使用C ++。

修改

ASP.Net有一个默认的处理程序,如果你做你需要的外卡映射,请确保你的windows / microsoft.net / framework .... / config /文件夹中的web.config中仍然有这个:< / p>

<httpHandlers>
....
            <add path="*" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="True"/>
</httpHandlers>

您可能还删除了网络配置文件中的处理程序。最后,您可以尝试为pdf文件添加显式映射。

答案 1 :(得分:1)

您想要撰写ISAPI filter(5.0术语)或扩展名(6.0)。