0

我想为通过 IIS 中某个网站的每个请求运行一段离散的 .Net 代码。这是完全独立的代码——它不会影响它之前或之后的任何东西——它会从请求中记录一些信息,然后结束。

请注意,这不是我可以放入 Application_OnRequestBegin 或其他一些 ASP.Net 文件的内容,因为我需要为非 .Net 文件(PDF、图像等)执行此操作。它需要执行通常不会命中 .Net 框架的请求。

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

4

2 回答 2

3

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

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

编辑

如果您执行所需的通配符映射,ASP.Net 有一个默认处理程序,请确保您的 windows/microsoft.net/framework..../config/ 文件夹中的 web.config 中仍有此处理程序:

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

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

于 2009-03-16T14:57:29.090 回答
1

您想编写一个ISAPI 过滤器(5.0 术语)或扩展(在 6.0 中)。

于 2009-03-16T14:56:26.347 回答