在 IIS 7.5 中,如何判断针对特定请求运行了哪些模块和处理程序?

在 IIS 7.5 中,如何判断针对特定请求运行了哪些模块和处理程序?

我正在尝试调试/验证在 IIS 7.5 上运行的 ASP.Net MVC 3 应用程序的 web.config。

当请求进入时,它会通过配置的 HttpModules 堆栈运行,并最终传递给特定的 HttpHander。我需要一种方法来运行请求,然后记录/查看运行的所有模块以及哪个处理程序实际接收了请求。包括 IIS 内置的模块/处理程序,而不仅仅是我自定义的模块/处理程序。

我之所以想要这样做,是因为我有理由相信会话状态模块正在为静态文件运行。我想验证我是否已修复该问题,并确保我的静态文件(例如表单身份验证模块)没有发生其他奇怪的事情。

我的应用程序正在集成模式下运行。

答案1

会话状态很可能正在静态文件上运行!

最简单的方法是将其 FREB。使用失败请求跟踪,并在跟踪规则中将“失败”条件设置为 200。

简而言之:

  • 在盒子上安装 FREB(它是“健康和诊断”中的“跟踪”功能

    • IIS 7:如果您没有看到图标(失败请求跟踪规则)并且您是服务器管理员,则表示它未安装在机器上
  • 为您感兴趣的站点启用 FREB(在站点级别,在操作窗格中 - 另请参阅http://technet.microsoft.com/en-us/library/cc725786(v=WS.10).aspx

  • 创建一个失败请求跟踪规则,以您的网站内的 200 个响应(或仅 100-599 个)为目标,发出一些请求以生成日志,然后查看您的 c:\inetpub\logs\failed request tracing 文件夹。双击 XML,然后随意摆弄视图,直到找到您喜欢的视图!

相关内容