47

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

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

在搜索中,大多数人都建议将简单设置runAllManagedModulesForAllRequests设置为true。对于咯咯笑,我继续将其设置为 true,是的,它确实有效。但这不是一个可以接受的答案。

如何保留runAllManagedModulesForAllRequests=false并继续使用 MiniProfiler v2?

4

3 回答 3

74

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

幸运的是,所有 MiniProfiler 资源都是通过 path 请求的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>

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

于 2012-04-28T12:32:45.860 回答
0

正如大卫杜菲特在接受答案的评论中所说,您可能还需要将以下条目添加到您的网络配置中。这对我有用:

<system.web>
    <httpHandlers>
      <add verb="*" type="System.Web.Routing.UrlRoutingModule" path="mini-profiler-resources/*"/>
    </httpHandlers>
</system.web>
于 2015-06-24T12:16:11.820 回答
0

我有一个类似的问题,我解决它的方法是将应用程序池更改为“集成”,然后我将下面的这一新行添加到我的 web.config 中,然后它就可以工作了。

下面是 mini-profiler 的完整 web.config 现在的样子。

<system.webServer>
    <modules runAllManagedModulesForAllRequests="false" />
    <validation validateIntegratedModeConfiguration="false"/> <!-- Here is the new line -->
    <handlers>
      <add name="MiniProfiler" verb="*" type="System.Web.Routing.UrlRoutingModule" path="mini-profiler-resources/*"/>
    </handlers>
  </system.webServer>
于 2015-09-16T15:03:32.903 回答