Запуск MiniProfiler с параметром runAllManagedModulesForAllRequests, установленным в false
Недавно мы обновили MiniProfiler до версии 2.0.1 с v1.7, и с тех пор мы не смогли использовать его на нашем веб-сайте MVC3, потому что когда он пытается получить свои ресурсы, он получает 404.
Пример вызова ресурса: /mini-profiler-resources/includes.js?v=tNlJPuyuHLy/d5LQjyDuRbWKa0weCpmO3xkO6MH4TtA=
В поисках вокруг, большинство людей предлагают, что просто настройка runAllManagedModulesForAllRequests
должен быть установлен в true
, Для хихиканья я пошел вперед и установил его на true, и да, это сработало. Но это не приемлемый ответ.
Как я могу сохранить runAllManagedModulesForAllRequests=false
и все еще используете MiniProfiler v2?
3 ответа
У меня была та же проблема - запрашиваемые ресурсы используют "статические" расширения файлов (такие как .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>
Запись выше указывает IIS, что любой запрос на mini-profiler-resources
путь для маршрутизации через ASP.NET.
У меня была похожая проблема, и я решил исправить пул приложений на "интегрированный", а затем добавил эту новую строку ниже в свой файл web.config, и это сработало.
Вот как выглядит полный 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>
Как говорит Дэвид Даффет в комментариях к принятому ответу, вам также может понадобиться добавить следующую запись в вашу веб-конфигурацию. Это сработало для меня:
<system.web>
<httpHandlers>
<add verb="*" type="System.Web.Routing.UrlRoutingModule" path="mini-profiler-resources/*"/>
</httpHandlers>
</system.web>