1

我正在开发一个基于 IIS 7.0 中“拦截”传入 HTTP 请求的能力的项目。我只需要一些关于当前在 IIS 中请求哪些 URL 的基本信息,以便进一步处理。

有没有办法在没有 HttpModule 的情况下实现这一目标?比如,以某种方式连接到 IIS 的“全局”进程?我的意思是,我想创建一个产品,不需要在 GAC 中注册 HttpModule,或者让网站所有者在他的 Web 应用程序 (web.config) 中包含任何配置细节(甚至做任何事情)等等。

我需要的信息主要是请求的 URL,但我可能还需要 IIS 应用程序 ID,以确定站点在硬盘驱动器上的位置并在那里创建一些文件夹......

一些额外的解释使我的问题更清楚

我说的是“服务器范围”范围内的应用程序(服务器端组件),因此,任何特定的“站点”所有者(虽然可能有多个站点托管在我们的 IIS7 实例下)都不必做任何事情就他而言,但我的“服务器端”组件会知道在其中一个站点上请求了一个 URL ...

例如,基本上我的“组件”将收到一条消息,即在主机名为“one-of-my-hosted-domains.com”的站点上请求了 url “/about-us”/ 而无需执行任何操作(不global.asax,没有 web.config,或者将 HttpModule 扔到 BIN 或 GAC 中。一个位于该域上的 HttpModule ... :)

对于这方面的一些提示,我将不胜感激!

4

1 回答 1

0

也许更简单的方法就足够了;打开 IIS 服务器的请求日志记录,然后监视生成的日志文件。您应该会看到每个请求的条目。

于 2011-05-01T01:49:00.247 回答