Atualização 1 do Visual Studio 2015 com spam localhost

118

Instalei a atualização 1 do Visual Studio ontem e agora ao executar serviços ASP.NET localmente no IIS (não na versão expressa). Estou vendo centenas de solicitações por segundo para o endereço

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

O que está causando isso e é evitável?

Bolo de peixe
fonte
30
VSHub é o componente que mostra o uso de CPU e memória ao vivo quando você depura. Você não precisa usá-lo, desative-o com Ferramentas> Opções> Depuração> Geral> desmarque "Habilitar Ferramentas de Diagnóstico durante a depuração". Ou apenas não se irrite com esses recursos de depuração.
Hans Passant
5
Bem, é irritante quando você está usando o violinista ... obrigado ao KyleUp por uma boa solução
Poku
Possível duplicata do Visual Studio 2015 vshub é spamming fiddler
Michael Freidgeim

Respostas:

109

Outra opção para evitar que o fiddler consuma sua CPU é escrever uma regra no fiddler para ignorar essas solicitações. Vá para Regras> Personalizar Regras ... encontre a função OnBeforeRequest e adicione

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

então o meu é assim:

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

como @matrixugly apontou, a porta pode ser diferente dependendo da versão do VS. A solução de @tedd-hansen pode ser melhor em todas as versões do Visual Studio.

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

Aqui estão algumas discussões sobre esse problema no github para entender melhor o que está acontecendo; https://github.com/aspnet/Mvc/issues/3655

Aqui está outra postagem no SO para o mesmo problema; visual studio 2015 vshub é violador de spam

KyleUp
fonte
2
Acabei de atualizar para o VS2015 Update 2 esta manhã, e minhas solicitações de vshub têm "localhost: 49160". Não tenho certeza se o VS usa uma porta diferente para cada versão. Provavelmente poderia atualizar a condição para ver se "host" começa com localhost e url começa com / vshub /
C. Tewalt
51

Este é o depurador enviando informações de volta ao processo VSHub. É a comunicação interna entre os dois processos para que parte da coleta de dados do depurador possa acontecer fora do processo.

Ajuda com dicas de ferramentas do depurador, informações de desempenho, a experiência histórica de depuração e muito mais. Como tal, não há como desligá-lo sem prejudicar seriamente os recursos avançados do depurador.

Você pode desativar alguns desses recursos (embora outros recursos ainda possam contar com o Vshub para fazer o trabalho fora do processo em segundo plano):

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

A comunicação é puramente local e não representa uma sobrecarga ou problema sério. Existe um motivo específico pelo qual você deseja se livrar dele? Ferramentas como o Fiddler podem ser configuradas para filtrar o processo, portanto, ignorar esse tráfego deve ser simples.

Jessehouwing
fonte
2
Não quero me livrar de nenhum novo recurso de depuração. Eu simplesmente estava vendo recursos de CPU anormalmente altos sendo usados ​​(desde a instalação da atualização 1 ontem) no Fiddler e no VS e notei essas entradas aparecendo no Fiddler. Ainda estou para investigar qualquer um dos novos recursos de depuração da Atualização 1, mas vou deixá-los ativados se for benéfico para mim. Felicidades.
Fishcake
2
Tenho que concordar com @Fishcake que isso é perturbador, ter que filtrar chamadas de depurador para ver minhas próprias chamadas de httpclient é uma dor. Dito isso, é uma boa ideia filtrar. Eu não tinha ideia do que eram.
hal9000
18

Como isso se transformou em maneiras de fazer o Fiddler ignorar as solicitações, a maneira mais fácil que encontrei é ir para a guia Filtros, seção Cabeçalhos de solicitação, marque a caixa "Ocultar se o URL contém" e digite "/ vshub /".

Escondendo com Filtros

Brian Reischl
fonte
7

Sei que essa não é a resposta, mas pode ajudar outras pessoas que venham aqui (como eu).

Expandindo a resposta que KyleUp deu. Adicionar isso ao método "OnBeforeRequest" é um pouco mais geral e impede que todas as mensagens localhost / vshub / debug ocupem a visualização no Fiddler.

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

Esta é uma alternativa mais fácil para ocultar o tráfego do host local do vshub.

Vá para Ferramentas> Opções do Fiddler> guia Conexões e adicione http://localhost:49155à lista de ignorar. Isso irá ignorar todo o tráfego postado nesse Url.

Mikro
fonte