2011-07-23 11 views
8

Właśnie dodałem Mini Profiler do mojego projektu MVC3 z nuget i podążałem za podstawowymi krokami, aby go skonfigurować. Uruchamianie profil na Application_BeginRequest() oraz zatrzymując go na Application_EndRequest()Wyjątek MVC Mini Profiler na MiniProfiler.Stop()

protected void Application_BeginRequest() 
    { 
     if (Request.IsLocal) 
     { 
      MiniProfiler.Start(); 
     } 

    } 

    protected void Application_EndRequest() 
    { 
     MiniProfiler.Stop(); 
    } 

MiniProfiler.Stop() rzuca wyjątek - „Serwer nie może dołączyć nagłówek po nagłówki HTTP zostały wysłane.”

Czy ktoś jeszcze to widział?

Odpowiedz

1

Wygląda na to, że ma związek z Combres (http://combres.codeplex.com/). Jeśli zignoruję żądania dla mojego js i css, które zostały połączone i skompresowane z combres, profiler wydaje się działać lepiej (nie ma wyjątku)

+0

Czy mogę po prostu powiedzieć, że Combres (choć dobrze zbudowane narzędzie) prawdopodobnie nie jest czymś, z czego chcesz korzystać. Jeśli chcesz połączyć i zminimalizować css/js, powinieneś zrobić to w czasie kompilacji, aby zmniejszyć obciążenie serwera. [Oto kolejny wpis, który napisałem na ten temat.] (Http://stackoverflow.com/questions/6687475/is-there-a-plugin-which-will-automatically-minify-and-cache-javascript/6687530#6687530) –

+0

Uwaga: głównym tematem tego tematu jest użycie [Chirpy] (http://chirpy.codeplex.com/) do łączenia i minimalizowania JS/CSS - To FANTASTYCZNE narzędzie ... i nie, ja don nie mają z nimi żadnego związku. –

+0

Dzięki za sugestię. Popatrzę na Chirpy. Combres był najlepszą rzeczą, jaką mogłem znaleźć w czasie, kiedy patrzyłem, ale wydaje się raczej "ciężki" w czasie wykonywania. – BZink

7

Stare pytanie, ale mimo wszystko odpowiadanie.

Problem spowodowany przez jakiś składnik (SignalR w moim przypadku) nazywa się HttpResponse.Flush. Rozwiązano, wykluczając SignalR z profilowania. Poniżej znajduje się prosta wersja tego, co zrobiliśmy.

if (Request.IsLocal && !Request.Path.StartsWith("/signalr")) 
{ 
    MiniProfiler.Start(); 
} 

Mam nadzieję, że to pomaga.

Powiązane problemy