2012-04-24 6 views
47

Niedawno przeszliśmy na wersję 2.0.1 MiniProfilera z wersji 1.7, a od tego czasu nie mogliśmy jej użyć na naszej stronie MVC3, ponieważ kiedy próbuje zdobyć zasoby, zamiast tego dostaje 404.Uruchamianie MiniProfilera z runAllManagedModulesForAllRequests ustawionym na false

przykładem połączenia zasobów jest: /mini-profiler-resources/includes.js?v=tNlJPuyuHLy/d5LQjyDuRbWKa0weCpmO3xkO6MH4TtA=

W poszukiwaniu wokół, większość ludzi sugerując to po prostu ustawienie runAllManagedModulesForAllRequests należy ustawić na true. Na chichoty poszedłem do przodu i ustawiłem to na prawdziwe, i tak, zadziałało. Ale to nie jest akceptowalna odpowiedź.

Jak mogę zachować runAllManagedModulesForAllRequests=false i nadal korzystać z MiniProfiler v2?

+1

cóż ... musimy dowiedzieć się, co się zepsuło, czy bagażnik ma taki sam problem? Wiem, że były prośby o podawanie rzeczy bez precedensu w przeszłości do obejścia tego –

+0

Wygląda na to, że ten post mówi o tym samym problemie: http://stackoverflow.com/q/10212725/498969 Kod, który usunąłem, był z twojego pakiet nuget, więc nie mogę potwierdzić problemu z bagażnika w tej chwili. Wersja 2 nie wymaga już rejestracji tych trzech programów obsługi (miniProfilerJS, miniProfilerCSS, miniProfilerTmpl)? Czy omijasz to, rejestrując trasy z MiniProfilerHandler? –

+0

Myślę, że najczystszy projekt, na który możemy się przenieść, to pojedynczy punkt końcowy obsługujący wszystkie rzeczy, np .: /mini-profiler-handler?jquery.js&kfslsfjklskd itd ... Czy możesz opublikować post na http://community.miniprofiler.com –

Odpowiedz

74

Miałem ten sam problem - żądane zasoby używają "statycznych" rozszerzeń plików (takich jak .js) i dlatego IIS chce je obsłużyć za pomocą swojej statycznej procedury obsługi plików.

szczęście wszystkich zasobów MiniProfiler są wymagane ze ścieżką mini-profiler-resources, więc można dodać następujące wpisy do 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> 

Wpis powyżej instruuje IIS, że każdy wniosek o ścieżce mini-profiler-resources być kierowane przez ASP.NET.

+0

Dziękujemy @David. Działa świetnie!! –

+1

Co musimy zrobić, aby w IIS 7 działać w trybie klasycznym? – goalie7960

+3

Hmm .. jeśli pracujesz w trybie klasycznym, prawdopodobnie możesz dodać podobny wpis do . Sądzę, że format jest tym samym wyjątkiem może pozostawić atrybuty resourceType i preCondition. –

0

Jak mówi David Duffet w komentarzach w zaakceptowanej odpowiedzi, może być konieczne dodanie następującego wpisu do konfiguracji sieci. Ten pracował dla mnie:

<system.web> 
    <httpHandlers> 
     <add verb="*" type="System.Web.Routing.UrlRoutingModule" path="mini-profiler-resources/*"/> 
    </httpHandlers> 
</system.web> 
0

miałem podobny problem i co zrobiłem, aby naprawić to było zmienić pulę aplikacji do „zintegrowane”, a następnie dodałem tę nową linię poniżej do mojego web.config i następnie pracował .

Oto, jak wygląda teraz kompletny plik web.config dla mini-profilera.

<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> 
Powiązane problemy