Was ist System.Web.Mvc.MvcHandler.ProcessAsyncRequest ()?

8

Ich mache ein Tracing in NewRelic, und ich sehe, dass fast jede einzelne Anfrage einen Aufruf von 'System.Web.Mvc.MvcHandler.ProcessAsyncRequest ()' enthält.

Dieser Funktionsaufruf kann zwischen 300ms und 100s (ernsthaft, 100s) dauern. Ich habe versucht, msdn Dokumentation zu suchen, aber es gibt nichts auf Ссылка

klar, etwas lügt mich hier.

Ich habe ein paar Theorien, warum das so lange dauert:

  • Inferenz eingeben? Ich verwende Strukturkarte.

  • Probleme mit der Server-Ressource?

  • .net Version Inkompatibilität irgendeiner Art?

  • asp.net mvc Unvereinbarkeit irgendeiner Art?

Umgebung:

.net 4

asp.net mvc 3

dedizierte vm

    
Oren Mazor 29.11.2011, 00:38
quelle

3 Antworten

4

Als ich dieses Problem fand, dachte ich das gleiche wie @garfbradaz und schaute durch die MVC-Quelle. Es war interessant, da ich keine Referenz für die ProcessAsyncRequest -Methode gefunden habe.

Deshalb entschied ich, dass es etwas sein könnte, was New Relic injiziert, oder wie du sagst, ein Ablenkungsmanöver und etwas lügt uns! Ich habe New Relic ausgeschaltet und bin mit ihrem Support-Team in Kontakt getreten.

Heute, nach ein paar E-Mails von einem äußerst reaktionsschnellen und zuvorkommenden Mitglied des New Relic-Teams, haben sie mir mitgeteilt, dass es sich um einen Fehler handelt. Hier ist ihre Antwort:

  

ProcessAsyncRequest ist ein benutzerdefinierter Name, den wir für jede Metrik verwenden   aufgezeichnet, die nicht von "System.Web.UI.Page" geerbt wird   Vorausgesetzt, dass MVC View Engine "System.Web.Mvc.ViewPage" alle diese verwendet   Metriken fallen fälschlicherweise unter den Namen New Relic von   "ProcessAsyncRequest."

     

Ich werde an einer Modifikation des Agenten und des Kerns arbeiten   Instrumentierung, die diese Metriken hoffentlich aggregiert   passend. Es tut mir leid für die Verwirrung und Schwierigkeiten, die das hat   hat dich verursacht.

     

Ich werde Ihnen ein Update geben, wenn ich einer Lösung nahe bin.

BEARBEITEN : Eine weitere Antwort von New Relic unten - sieht so aus, als hätten sie eine Korrektur an Ort und Stelle.

  

Ich habe gerade ein Commit gemacht, das uns helfen wird, das zu klassifizieren   Transaktionen, die vom installierten Agenten kommen.

     

Was das Leistungsproblem anbelangt, haben wir ein Problem entdeckt, von dem berichtet wurde   die genialen Ingenieure von AppHarbor, die TypeLoadExceptions verursacht haben   was mit dem langsamen Laden / Kompilieren von Code zusammenhängen könnte   der Cache. Wir haben die Ursache gefunden und befinden uns in den letzten Testphasen   von diesem Fix und wir hoffen, das Update in der nächsten Version von zu bekommen   der Agent.

Nick von New Relic hat hervorragend darauf reagiert und ihr Produkt war sehr nützlich, also habe ich keine schlechten Gefühle, dachte nur, ich würde die Details hier teilen.

Sehr erfreut darüber, dass es in meiner MVC-App sowieso keine Geister gibt!

Vorläufig rate ich jedem, der diese Probleme hat, New Relic bis zu ihrer nächsten Veröffentlichung auszuschalten.

BEARBEITEN 2 : Nick von New Relic hat mir heute eine E-Mail geschickt - ihr letzter Agent (Version 2.0.9.15) - ist jetzt verfügbar und sollte dieses Problem beheben.

    
dazbradbury 03.05.2012, 21:56
quelle
2

Haben Sie versucht, den MVC-Quellcode herunterzuladen, so finden Sie den MVC3-Code hier:

Ссылка

Machen Sie es in Ihrer Umgebung und testen Sie Ihre Website, um zu sehen, was passiert - und melden Sie sich bitte zurück! :)

    
garfbradaz 07.04.2012 18:51
quelle
1

Haben Sie versucht, Glimpse über Nuget zu installieren und die Anfrage zu verfolgen?

Hanselman hat darüber gebloggt

    
Ryand.Johnson 29.11.2011 20:32
quelle

Tags und Links