Visual Studio 2015 Update 1 spam localhost

118

Instalé Visual Studio Update 1 ayer y ahora cuando ejecuto servicios ASP.NET localmente en IIS (no la versión express). Veo cientos de solicitudes por segundo a la dirección

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

¿Qué está causando esto? ¿Se puede prevenir?

Pastel de pescado
fuente
30
VSHub es el componente que muestra el uso de la CPU y la memoria en vivo cuando depura. No tiene que usarlo, desactívelo con Herramientas> Opciones> Depuración> General> desmarque "Habilitar herramientas de diagnóstico durante la depuración". O simplemente no se moleste con esas agradables funciones de depuración.
Hans Passant
5
Bueno, es molesto cuando estás usando Fiddler ... gracias a KyleUp por una buena solución
Poku
Posible duplicado de Visual Studio 2015 vshub está enviando spam a
Fiddler

Respuestas:

109

Otra opción para evitar que Fiddler mastique tu CPU es escribir una regla en Fiddler para ignorar esas solicitudes. Vaya a Reglas> Personalizar reglas ... busque la función OnBeforeRequest y agregue

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

entonces el mío se ve así:

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

como @matrixugly señaló, el puerto puede ser diferente dependiendo de la versión de VS. La solución de @ tedd-hansen podría ser mejor en todas las versiones de Visual Studio.

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

Aquí hay una discusión sobre este tema en github para comprender mejor lo que está sucediendo; https://github.com/aspnet/Mvc/issues/3655

Aquí hay otra publicación sobre SO para el mismo tema; visual studio 2015 vshub está enviando spam a fiddler

KyleUp
fuente
2
Acabo de actualizar a VS2015 Update 2 esta mañana y mis solicitudes de vshub tienen "localhost: 49160". No estoy seguro de si VS usa un puerto diferente para cada versión. Probablemente podría actualizar la condición para ver si "host" comienza con localhost y la URL comienza con / vshub /
C. Tewalt
51

Este es el depurador que envía información al proceso VSHub. Es la comunicación interna entre los dos procesos para que parte de la recopilación de datos del depurador pueda ocurrir fuera de proceso.

Ayuda con la información sobre herramientas del depurador, la información de rendimiento, la experiencia histórica de depuración y más. Como tal, no hay forma de apagarlo sin paralizar seriamente las funciones avanzadas del depurador.

Puede desactivar algunas de estas funciones (aunque es posible que otras funciones aún dependan de Vshub para realizar trabajos fuera de proceso en segundo plano):

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

La comunicación es puramente local y no representa una sobrecarga o problema grave. ¿Existe una razón específica por la que desea deshacerse de él? Las herramientas como Fiddler se pueden configurar para filtrar el proceso, por lo que ignorar este tráfico debería ser simple.

jessehouwing
fuente
2
No quiero deshacerme de ninguna nueva función de depuración. Simplemente estaba viendo que se estaban utilizando recursos de CPU anormalmente altos (desde que instalé la actualización 1 ayer) tanto en Fiddler como en VS y noté que estas entradas aparecían en Fiddler. Todavía tengo que investigar ninguna de las nuevas funciones de depuración de la Actualización 1, pero las dejaré activadas si me benefician. Salud.
Fishcake
2
Tengo que estar de acuerdo con @Fishcake en que estos son perturbadores, tener que filtrar las llamadas al depurador para ver mis propias llamadas httpclient es una molestia. Dicho esto, buena idea filtrar. No tenía ni idea de qué eran.
hal9000
18

Dado que esto se ha convertido en formas de hacer que Fiddler ignore las solicitudes, la forma más fácil que he encontrado es ir a la pestaña Filtros, sección Encabezados de solicitud, marcar la casilla "Ocultar si la URL contiene" e ingresar "/ vshub /".

Ocultar con filtros

Brian Reischl
fuente
7

Me doy cuenta de que esta no es la respuesta, pero puede ayudar a otros que vienen aquí (como yo).

Ampliando la respuesta que dio KyleUp. Agregar esto al método "OnBeforeRequest" es un poco más general y evita que todos los mensajes de localhost / vshub / debug llenen la vista en Fiddler.

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

Esta es una alternativa más fácil para ocultar el tráfico de vshub localhost.

Vaya a Herramientas> Opciones de Fiddler> pestaña Conexiones y agréguelo http://localhost:49155a la lista de omisión. Esto omitirá todo el tráfico publicado en esa URL.

mikro
fuente