MiniProfiler не может найти jquery
Я использовал MiniProfiler для оценки производительности сайта. Когда я обновлялся с версии с 1.9 до 2.0, он переставал работать. Я изменил пространство имен с MvcMiniProfiler на StackExchange.Profiling. Но когда я загружаю страницу, скрипач показывает, что есть 404 ошибка для следующего запроса:
GET/local/mini-profiler-resources/jquery.1.7.1.js?v=tNlJPuyuHLy/d5LQjyDuRbWKa0weCpmO3xkO6MH4TtA= HTTP/1.1
Это предотвращает отображение результатов на странице.
Чтобы получить версию MiniProfiler версии 1.9, я должен был иметь следующие записи в файле Web.Config(как описано в этом сообщении):
<system.webServer>
<handlers>
<add name="UrlRoutingModule1" path="mini-profiler*.js" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
<add name="UrlRoutingModule2" path="mini-profiler*.css" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
<add name="UrlRoutingModule3" path="mini-profiler*.tmpl" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
</handlers>
</system.webServer>
Я попытался запустить MiniProfiler 2.0 с включенными в конфигурационный файл и с ними исключить, ни один из способов не работал.
Это работает на моей машине разработки в IIS Express.
Мое приложение - это приложение WebForms, в котором используется защита форм.
Как это разрешить?
Ответы
Ответ 1
Похоже, что это обычная проблема, просто добавьте это в файл web.config, и это должно быть хорошо.
Запуск MiniProfiler с runAllManagedModulesForAllRequests установлен на false
<system.webServer>
...
<handlers>
<add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
</handlers>
</system.webServer>
Ответ 2
То, что мне в итоге пришлось сделать, это создать на моем сервере мини-профилировщик, а затем скопировать все файлы из StackExchange.Profiling/UI в него. Не знаю, почему это работает. Я предполагаю, что мне не хватает некоторых настроек сервера, потому что я только должен был сделать это на производственной системе.
Все работало отлично.
Ответ 3
для меня его начало работать, когда я пишу следующий код
protected void Application_EndRequest()
{
MiniProfiler.Stop();
}
вместо
protected void Application_End(object sender, EventArgs e)
{
// Code that runs on application shutdown
MiniProfiler.Stop();
}
Ответ 4
Попробуйте перерегистрировать ASP.NET, запустив aspnet_regiis -i
из соответствующей папки .NET Framework в каталоге Windows\Microsoft.NET. У меня были аналогичные проблемы, которые были решены путем перерегистрации обработчиков ASP.NET.
Я думаю, что у меня возникла эта проблема после установки функций статического файла в IIS после установки .NET Framework.
Ответ 5
Я не знаю об ASP.NET, но в Rails я решил удалить файлы tmp/miniprofiler. Когда я перезагружаю страницу, она работает.
Ответ 6
Чтобы исправить это, мне пришлось изменить DefaultAppPool от Classic до Integrated.
Это устранило проблему.
Также, поскольку я использую MVC4, мне пришлось загрузить источники MiniProfiler и скомпилировать их с библиотеками MVC4.