2015-12-04 14 views
116

Zainstalowałem Visual Studio Update 1 wczoraj i teraz, gdy usługi ASP.NET są uruchamiane lokalnie w usługach IIS (nie w wersji ekspresowej). Widzę setki zapytań na sekundę na adresAktualizacja programu Visual Studio 2015 1 spamowanie lokalnego hosta

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

Co jest tego przyczyną i czy można zapobiec?

+29

VSHub to składnik, który pokazuje użycie procesora i pamięci podczas debugowania. Nie * musisz * używać, wyłączyć za pomocą Narzędzia> Opcje> Debugowanie> Ogólne> odznacz "Włącz narzędzia diagnostyczne podczas debugowania". Lub po prostu nie denerwuj się dzięki tym dobrym funkcjom debugowania. –

+5

To jest denerwujące, gdy używasz skrzypka ... dzięki KyleUp dla dobrego rozwiązania – Poku

+0

Możliwy duplikat [visual studio 2015 vshub jest spamowaniem skrzypka] (http://stackoverflow.com/questions/33837163/visual-studio- 2015-vshub-is-spamming-fiddler) –

Odpowiedz

106

Inną opcją, która uniemożliwia skrzypkowi przetasowanie procesora, jest napisanie reguły na skrzypce, aby zignorować te żądania. Zasady goto> Dostosuj Rules ... znaleźć OnBeforeRequest funkcyjny i dodatek

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

więc kopalnia wygląda następująco:

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

jak @matrixugly wskazał port może być różny w zależności od wersji VS . Rozwiązanie @ tedd-hansen może być lepsze we wszystkich wersjach visual studio.

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

Oto kolejny wpis na SO dotyczący tego samego problemu; visual studio 2015 vshub is spamming fiddler

+2

Właśnie uaktualniłem do VS2015 Update 2 dziś rano, a moje żądania vshub mają "localhost: 49160". Nie wiem, czy VS używa innego portu dla każdej wersji. Prawdopodobnie mógł zaktualizować warunek, aby sprawdzić, czy "host" zaczyna się od localhost, a URL zaczyna się od/vshub / – matrixugly

50

To jest debugger wysyłający informacje z powrotem do procesu VSHub. Jest to wewnętrzna komunikacja pomiędzy tymi dwoma procesami, tak aby część gromadzenia danych w debuggerze mogła zachodzić poza procesem.

Pomaga w tworzeniu etykiet narzędzi debuggera, informacji o wydajności, historycznych próbach debugowania i innych. W związku z tym nie można go wyłączyć bez poważnego uszkodzenia zaawansowanych funkcji debuggera.

Można włączyć niektóre z tych funkcji OFF (choć inne cechy może nadal polegać na Vshub zrobić, out-of-process praca w tle):

Narzędzia>Opcje>debugowanie>Ogólne>[ ] Włącz narzędzi diagnostycznych podczas debugowania

komunikacja jest czysto lokalny i nie stanowią poważne obciążenie lub jest pozwać. Czy istnieje konkretny powód, dla którego chcesz się go pozbyć? Narzędzia takie jak Skrzypek można skonfigurować do filtrowania procesu, więc ignorowanie tego ruchu powinno być proste.

+1

Nie chcę pozbyć się nowych funkcji debugowania. Po prostu widziałem, jak bardzo wysokie zasoby procesora są używane (od zainstalowania aktualizacji 1 wczoraj) na Fiddler i VS i zauważyłem, że te wpisy pojawiają się w Fiddler. Muszę jeszcze zbadać każdą z nowych funkcji debugowania aktualizacji 1, ale zostawi je, jeśli będzie dla mnie korzystne. Twoje zdrowie. – Fishcake

+1

Muszę zgodzić się z @ Fishcake, że są one niepokojące, konieczności odfiltrowania wywołania debuggera, aby zobaczyć własne połączenia httpclient jest ból. Biorąc to pod uwagę, dobrym pomysłem jest filtrowanie. Nie miałem pojęcia, co to jest. – hal9000

7

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

Poszerzenie odpowiedzi, którą udzielił KyleUp. Dodanie tego do metody "OnBeforeRequest" jest nieco bardziej ogólne i powstrzymuje wszystkie wiadomości localhost/vshub/debug przed zapełnieniem widoku w skrzypce.

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

Ponieważ okazało się sposobów, aby Skrzypek ignorować żądania, najprostszym sposobem znalazłem jest, aby przejść do zakładki Filtry, Wnioskują sekcję nagłówki, zaznacz opcję „Ukryj jeśli URL zawiera” pole i wprowadź "/ vshub /".

Hiding with Filters

3

Jest to alternatywa łatwiej ukryć ruch vshub localhost.

Przejdź do Narzędzia> Opcje Skrzypka> zakładka Połączenia i dodaj http://localhost:49155 do listy pomijania. Spowoduje to pominięcie całego ruchu opublikowanego w tym adresie URL.

Powiązane problemy