Visual Studio 2015 Update 1 spammt localhost


118

Ich habe Visual Studio Update 1 gestern und jetzt installiert, als ich ASP.NET-Dienste lokal auf IIS ausführte (nicht die Express-Version). Ich sehe Hunderte von Anfragen pro Sekunde an die Adresse

 http://localhost:49155/vshub/ca9dea4b016f45c68a6a8c1a07809eb4/DataWarehouseModule/dataWarehouse/getStatus/ 

Was verursacht dies und ist es vermeidbar?


30
VSHub ist die Komponente, die beim Debuggen die Live-CPU- und Speicherauslastung anzeigt. Sie haben nicht haben es es zu verwenden , um, schalten Sie mit Extras> Optionen> Debuggen> Allgemein> untick „Enable Diagnose - Tools während des Debuggens“. Oder ärgern Sie sich einfach nicht über diese netten Debugging-Funktionen.
Hans Passant

5
Nun, es ist ärgerlich, wenn Sie Fiddler verwenden ... danke an KyleUp für eine gute Lösung
Poku

Antworten:


109

Eine weitere Option, um zu verhindern, dass Fiddler Ihre CPU zerkaut, besteht darin, eine Regel in Fiddler zu schreiben, um diese Anforderungen zu ignorieren. Gehe zu Regeln> Regeln anpassen ... finde die Funktion OnBeforeRequest und füge hinzu

if(oSession.oRequest.headers["host"]=="localhost:49155"){
    oSession["ui-hide"] = "true";
}

so sieht meins so aus:

static function OnBeforeRequest(oSession: Session) {
    if(oSession.oRequest.headers["host"]=="localhost:49155"){
        oSession["ui-hide"] = "true";
    }
}

Wie @matrixugly hervorhob, kann der Port je nach Version von VS unterschiedlich sein. Die Lösung von @ tedd-hansen ist möglicherweise in allen Versionen von Visual Studio besser.

if(oSession.oRequest.headers["host"].StartsWith("localhost") 
    && oSession.PathAndQuery.StartsWith("/vshub/")) {
    oSession["ui-hide"] = "true";
}

Hier finden Sie eine Diskussion zu diesem Thema auf Github, um ein besseres Verständnis der Vorgänge zu erhalten. https://github.com/aspnet/Mvc/issues/3655

Hier ist ein weiterer Beitrag zu SO für dasselbe Problem. Visual Studio 2015 vshub spammt Geiger


2
Ich habe heute Morgen ein Upgrade auf VS2015 Update 2 durchgeführt und meine vshub-Anforderungen haben "localhost: 49160". Nicht sicher, ob VS für jede Version einen anderen Port verwendet. Könnte wahrscheinlich die Bedingung aktualisieren, um zu sehen, ob "Host" mit localhost beginnt und URL mit / vshub /
C. Tewalt

51

Dies ist der Debugger, der Informationen an den VSHub-Prozess zurücksendet. Es ist die interne Kommunikation zwischen den beiden Prozessen, sodass ein Teil der Debugger-Datenerfassung außerhalb des Prozesses erfolgen kann.

Es hilft mit Debugger-Tooltips, Leistungsinformationen, dem historischen Debugging-Erlebnis und vielem mehr. Daher gibt es keine Möglichkeit, es auszuschalten, ohne die erweiterten Debugger-Funktionen ernsthaft zu beeinträchtigen.

Sie können einige dieser Funktionen deaktivieren (obwohl andere Funktionen möglicherweise weiterhin auf Vshub angewiesen sind, um im Hintergrund nicht prozessuale Arbeiten auszuführen):

Tools> Options> Debugging> General> [  ] Enable Diagnostic Tools while debugging

Die Kommunikation ist rein lokal und stellt keinen ernsthaften Aufwand dar. Gibt es einen bestimmten Grund, warum Sie es loswerden möchten? Tools wie Fiddler können so konfiguriert werden, dass sie nach Prozessen filtern. Daher sollte es einfach sein, diesen Datenverkehr zu ignorieren.


2
Ich möchte keine neuen Debugging-Funktionen loswerden. Ich habe einfach festgestellt, dass sowohl bei Fiddler als auch bei VS ungewöhnlich hohe CPU-Ressourcen verwendet werden (seit der Installation von Update 1 gestern), und habe festgestellt, dass diese Einträge in Fiddler angezeigt werden. Ich habe noch keine der neuen Debugging-Funktionen von Update 1 untersucht, werde sie jedoch aktiviert lassen, wenn dies für mich von Vorteil ist. Prost.
Fishcake

2
Ich muss @Fishcake zustimmen, dass diese störend sind. Debugger-Aufrufe herauszufiltern, um meine eigenen httpclient-Aufrufe zu sehen, ist ein Schmerz. Trotzdem gute Idee zu filtern. Ich hatte keine Ahnung, was das waren.
hal9000

18

Da dies zu Möglichkeiten geworden ist, Fiddler dazu zu bringen, die Anforderungen zu ignorieren, ist der einfachste Weg, den ich gefunden habe, zur Registerkarte Filter im Abschnitt Anforderungsheader zu wechseln, das Kontrollkästchen "Ausblenden, wenn URL enthält" zu aktivieren und "/ vshub /" einzugeben.

Mit Filtern verstecken


7

Mir ist klar, dass dies nicht die Antwort ist, aber es kann anderen helfen, die hierher kommen (wie ich).

Erweiterung der Antwort, die KyleUp gegeben hat. Das Hinzufügen zur "OnBeforeRequest" -Methode ist etwas allgemeiner und verhindert, dass alle localhost / vshub / debug-Nachrichten die Ansicht in Fiddler ausfüllen.

if(oSession.oRequest.headers["host"].StartsWith("localhost") 
   && oSession.PathAndQuery.StartsWith("/vshub/")) {
    oSession["ui-hide"] = "true";
}

3

Dies ist eine einfachere Alternative, um den vshub localhost-Verkehr auszublenden.

Gehen Sie zu Extras> Geigeroptionen> Registerkarte Verbindungen und fügen Sie http://localhost:49155sie der Umgehungsliste hinzu. Dadurch wird der gesamte an diese URL gesendete Datenverkehr übersprungen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.