运行MiniProfiler,并将runAllManagedModulesForAllRequests设置为false

Ada*_*cer 47 web-config asp.net-mvc-3 mvc-mini-profiler

最近我们从v1.7升级到MiniProfiler版本2.0.1,从那以后我们无法在我们的MVC3网站中使用它,因为当它试图获取其资源时,它获得了404.

示例资源调用是: /mini-profiler-resources/includes.js?v=tNlJPuyuHLy/d5LQjyDuRbWKa0weCpmO3xkO6MH4TtA=

在搜索时,大多数人都建议只需将设置runAllManagedModulesForAllRequests设置为true.对于咯咯笑,我继续把它设置为真,是的,它确实有效.但这不是一个可以接受的答案.

我如何保持runAllManagedModulesForAllRequests=false并仍然使用MiniProfiler v2?

Dav*_*ett 74

我遇到了同样的问题 - 请求的资源使用"静​​态"文件扩展名(例如.js),因此IIS希望使用其静态文件处理程序来处理它们.

幸运的是,所有的MiniProfiler资源都是通过路径请求的mini-profiler-resources,因此您可以将以下内容添加到您的web.config:

<system.webServer>
  ...
  <handlers>
    <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
  </handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

上面的条目指示IIS mini-profiler-resources通过ASP.NET路由任何路径请求.

  • 这很有效,我相信这个重大变化应该在http://miniprofiler.com/网站上记录并突出显示. (5认同)
  • .NET 4.5中的重大变化目前要求我们将处理程序注册@David提及添加为变通方法.设置`runAllManagedModulesForAllRequests = true`不能解决问题. (4认同)
  • 请帮帮我,我也使用经典模式和MVC 4,我试图添加到httpHandlers,但它没有实现type ="System.Web.Routing.UrlRoutingModule".你能告诉我你使用的移动httpHalder吗? (4认同)
  • 嗯..如果你在经典模式下运行,那么你可以在<system.web> <httpHandlers>中添加一个类似的条目.我相信格式是相同的异常可能会留下resourceType和preCondition属性. (3认同)