Visual Studio 2015 Update 1 spamuje localhost

118

Zainstalowałem Visual Studio Update 1 wczoraj i teraz podczas uruchamiania usług ASP.NET lokalnie w IIS (nie w wersji Express). Widzę setki żądań na sekundę na adres

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

Co to powoduje i czy można temu zapobiec?

Ciasto rybne
źródło
30
VSHub to składnik, który podczas debugowania pokazuje bieżące zużycie procesora i pamięci. Nie musisz go używać, wyłącz go za pomocą Narzędzia> Opcje> Debugowanie> Ogólne> odznacz „Włącz narzędzia diagnostyczne podczas debugowania”. Lub po prostu nie denerwuj się tymi fajnymi funkcjami debugowania.
Hans Passant
5
Cóż, to irytujące, gdy używasz skrzypka ... dzięki KyleUp za dobre rozwiązanie
Poku
Możliwy duplikat programu Visual Studio 2015 vshub spamuje skrzypka
Michael Freidgeim

Odpowiedzi:

109

Inną opcją, która zapobiega przegryzaniu procesora przez skrzypka, jest napisanie w skrzypcach reguły ignorowania tych żądań. Idź do Rules> Customize Rules ... znajdź funkcję OnBeforeRequest i dodaj

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

więc mój wygląda tak:

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

jak wskazał @matrixugly, port może się różnić w zależności od wersji VS. Rozwiązanie @ tedd-hansen może być lepsze we wszystkich wersjach programu Visual Studio.

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

Oto dyskusja na ten temat na githubie, aby lepiej zrozumieć, co się dzieje; https://github.com/aspnet/Mvc/issues/3655

Oto kolejny post na SO dotyczący tego samego problemu; Visual Studio 2015 vshub spamuje skrzypkiem

KyleUp
źródło
2
Właśnie zaktualizowałem do VS2015 Update 2 dziś rano, a moje żądania vshub mają „localhost: 49160”. Nie jestem pewien, czy VS używa innego portu dla każdej wersji. Prawdopodobnie można zaktualizować warunek, aby sprawdzić, czy „host” zaczyna się od localhost, a adres URL zaczyna się od / vshub /
C. Tewalt
51

To jest debugger wysyłający informacje z powrotem do procesu VSHub. Jest to wewnętrzna komunikacja między dwoma procesami, dzięki czemu część gromadzenia danych debugera może zdarzyć się poza procesem.

Pomaga w etykietach narzędzi debugera, informacjach o wydajności, historycznym doświadczeniu debugowania i nie tylko. W związku z tym nie ma sposobu, aby go wyłączyć bez poważnego uszkodzenia zaawansowanych funkcji debugera.

Możesz wyłączyć niektóre z tych funkcji (chociaż inne funkcje mogą nadal polegać na Vshub, aby wykonywać prace poza procesem w tle):

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

Komunikacja ma charakter wyłącznie lokalny i nie stanowi poważnego obciążenia ani problemu. Czy jest jakiś konkretny powód, dla którego chcesz się go pozbyć? Narzędzia takie jak Fiddler można skonfigurować do filtrowania według procesów, więc ignorowanie tego ruchu powinno być proste.

jessehouwing
źródło
2
Nie chcę pozbywać się żadnych nowych funkcji debugowania. Po prostu widziałem nienormalnie wysokie zużycie zasobów procesora (od wczorajszej instalacji aktualizacji 1) zarówno w programie Fiddler, jak i VS i zauważyłem, że te wpisy pojawiają się w programie Fiddler. Nie zbadałem jeszcze żadnej z nowych funkcji debugowania Aktualizacji 1, ale zostawię je włączone, jeśli będzie to dla mnie korzystne. Twoje zdrowie.
Ciastko rybne
2
Muszę zgodzić się z @Fishcake, że są to niepokojące, konieczność odfiltrowywania wywołań debuggera, aby zobaczyć moje własne wywołania httpclient, to ból. Biorąc to pod uwagę, dobrym pomysłem jest filtrowanie. Nie miałem pojęcia, co to było.
hal9000
18

Ponieważ zmieniło się to w sposób, aby Fiddler ignorował żądania, najłatwiejszym sposobem, jaki znalazłem, jest przejście do zakładki Filtry w sekcji Nagłówki żądań, zaznaczenie pola „Ukryj, jeśli URL zawiera” i wpisanie „/ vshub /”.

Ukrywanie za pomocą filtrów

Brian Reischl
źródło
7

Zdaję sobie sprawę, że to nie jest odpowiedź, ale może pomóc innym, którzy tu przyjeżdżają (jak ja).

Poszerzenie odpowiedzi udzielonej przez KyleUp. Dodanie tego do metody „OnBeforeRequest” jest nieco bardziej ogólne i uniemożliwia wszystkim komunikatom localhost / vshub / debug wypełnianie widoku w programie Fiddler.

if(oSession.oRequest.headers["host"].StartsWith("localhost") 
   && oSession.PathAndQuery.StartsWith("/vshub/")) {
    oSession["ui-hide"] = "true";
}
Tedd Hansen
źródło
3

Jest to łatwiejsza alternatywa dla ukrycia ruchu na serwerze vshub localhost.

Idź do Narzędzia> Opcje Fiddlera> zakładka Połączenia i dodaj http://localhost:49155do listy pomijania. Spowoduje to pominięcie całego ruchu wysyłanego do tego adresu URL.

mikro
źródło