Visual Studio 2015 vshub está enviando spam a Fiddler

201

He leído: ¿Cómo desactivo VsHub.exe en la bandeja del sistema? y https://connect.microsoft.com/VisualStudio/feedback/details/1919828/hundreds-of-calls-second-to-vshub-and-browserlink-is-off

Preferiría no deshabilitar vshub; Solo quiero que sea más silencioso cuando estoy usando Fiddler. En este momento, elimina todo lo demás, y no puedo hacer una depuración general.

¿Alguien sabe una solución? ¿Puedo evitar que vshub aparezca en el violinista sin bloquear el resto de locahost?

Greg Netland
fuente

Respuestas:

268

Este es un problema relativamente nuevo porque System.NET solía ignorar la configuración del proxy para localhost y, por lo tanto, Fiddler no vería el tráfico de forma predeterminada ( http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureDotNETApp ) - Ver sección inferior.

Ahora, este ya no parece ser el caso, así que espero que más personas tengan la misma pregunta. Fiddler admite varias formas de filtrar solicitudes, aunque nada que el cliente pueda controlar (lo que probablemente sea bueno, ya que no querría que el malware excluya su tráfico). El mecanismo más apropiado y simple en este caso es probablemente establecer un filtro para cualquier url que contenga localhost o vshub. Puedes hacerlo de la siguiente manera:

  1. Haga clic en la pestaña de filtros (es una pestaña de nivel superior, al mismo nivel que los inspectores, estadísticas, etc.),
  2. Marque la casilla de verificación etiquetada 'Usar filtros'
  3. Desplácese hacia abajo y busque la casilla de verificación etiquetada 'Ocultar si la URL contiene'.
  4. Marque esa casilla e ingrese localhost o vshub en el cuadro de texto adjunto.
  5. Debería ver que el tráfico de vshub se detiene inmediatamente.

Este filtro persistirá, por lo que si cierra Fiddler y lo inicia más tarde, aún estará configurado.

Anson Horton
fuente
44
Gracias, @Anson. Ocultar esta gran cantidad de solicitudes hará que Fiddler sea utilizable nuevamente. Pero esto sigue siendo un problema grave, por supuesto. También hace que te preguntes por qué Visual Studio, o cualquier proceso posterior relacionado con él, está haciendo estas solicitudes en primer lugar (retorical). Si esto también le molesta , agregue un voto sobre el error de MS Connect # 1919828 y / o a través del problema ASP.NET MVC # 3655 .
Juliën
44
Solo para agregar puedes usar el || operador en el cuadro 'Ocultar si la URL contiene' si desea ocultar otras solicitudes como browserlink.
Nick Spicer
44
@Moriarty re: ...why Visual Studio is making these requests... bueno, esto se debe a que los procesos se comunican entre sí a través de HTTP en el adaptador de bucle invertido. . Este tráfico ha sido generado por "un tiempo" ahora; recientemente se ha cambiado que es visible de forma predeterminada para los servidores proxy HTTP ... por lo que no estoy muy seguro de por qué consideraría esto un error.
K. Alan Bates
2
Cuál es un efecto secundario de las nuevas herramientas de depuración remota en Visual Studio 2015, estoy bastante seguro. Especialmente relacionado con la depuración multiplataforma para Cordova en dispositivos Apple, apostaría aún más. Probablemente construyeron estos cambios de una manera que les permitió extenderlos a otras plataformas más adelante, de ahí el cambio global.
Bon
1
Esta no es la solución correcta. Simplemente oculta el problema. Las soluciones a continuación que eliminan las herramientas de diagnóstico mientras se depura en VS es la verdadera solución.
Rafi
132

Estas solicitudes parecen provenir de la ventana Herramientas de diagnóstico que se ejecuta al depurar. Parece que proporcionan la información de monitoreo para el uso de la memoria y el uso de la CPU.

Puede detener las solicitudes si no le interesa ver la información de uso deshabilitando la supervisión de la memoria / CPU en el cuadro de diálogo Herramientas de diagnóstico.

  • Abra la ventana Herramientas de diagnóstico (Depuración -> Windows -> Mostrar herramientas de diagnóstico)
  • Haga clic en el menú desplegable "Seleccionar herramientas" y desmarque Uso de memoria y Uso de CPU.
  • Detenga la depuración y la próxima vez que comience a depurar ya no debería ver las solicitudes que se hacen a vshub
Alex
fuente
10
Esa es la solución correcta. Inmediatamente se deshizo de todos los mensajes de spam. En este momento no me importa la CPU / Memoria, necesito que mi violinista se mantenga limpio para poder usarlo correctamente. Muchas gracias Alex por esta solución.
Pic Mickael
66
Esto ayudará solo una vez, pero puede desactivar "Herramientas de diagnóstico" en Vusial Studio aquí: Herramientas -> Opciones -> Depuración -> General -> casilla de verificación "Activar herramientas de diagnóstico durante la depuración"
Andrey Prokhorov
1
Parece que no puedo encontrar el menú desplegable "Seleccionar herramientas" (en Visual Studio 2015). ¿Alguna idea de dónde está?
Por Lundberg
1
@PerLundberg Si no puede localizar "Seleccionar herramientas", pruebe la respuesta de Brian a continuación (igual que la de Andrey en estos comentarios). Esta es ahora mi solución preferida para mantener la supervisión de la memoria / CPU deshabilitada todo el tiempo. Si lo necesito, sé cómo habilitarlo.
Alex
Tenga en cuenta que si está en una sesión de depuración y hace la opción de Alex, mientras que su monitoreo de memoria / CPU se detendrá, ¡las solicitudes no lo harán hasta que detenga y reinicie su sesión de depuración! Descubrí esto de la manera difícil.
vapcguy
88

Para mí, la solución para detener el "envío de spam" a Fiddler4, en lugar de un filtro de Fiddler, que podría haber elegido hacer, fue cambiar una opción de Visual Studio 2015:

Visual Studio 2015 -> Herramientas -> Opciones -> Depuración -> General -> desmarque / deshabilite "Habilitar herramientas de diagnóstico durante la depuración"

ingrese la descripción de la imagen aquí

El servicio VSHUB.exe debe ser el servicio que asiste a las herramientas de diagnóstico durante la depuración y continuamente hace ping a su sitio web / webapi / aplicación web que está depurando. No necesito depurar. Herramientas de diagnóstico en este momento, así que lo desactivé en Visual Studio

En lo que respecta a deshabilitar VSHUB.exe, tuve la tentación de hacerlo, hasta que leí a alguien de Microsoft, lo mejor es no deshabilitarlo para una mejor experiencia de Visual Studio 2015 y agregar nuevas características a Visual Studio que utilicen VSHUB.exe sobre hora:

¿Cómo deshabilito VsHub.exe en la bandeja del sistema?

Brian Ogden
fuente
@BrianOgden Phew! Gracias. Finalmente, una respuesta VS 2015. Los menús de Visual Studio han cambiado mucho en cada lanzamiento. De repente, esta herramienta, VsHub, se volvió inestable y no sé por qué. Con las actualizaciones automáticas de Windows 10, podría haber sido eso sin que yo lo supiera.
octopusgrabbus
Tenga en cuenta que cualquiera que lo haga de esta manera, si lo hace mientras está en medio de una sesión de depuración, sus solicitudes no dejarán de capturarse en Fiddler hasta que detenga y reinicie su sesión de depuración.
vapcguy
21

El problema es causado por las herramientas de diagnóstico de Visual Studio durante la depuración.

Puede deshabilitarlos yendo a HerramientasOpciones y luego siguiendo los pasos: ingrese la descripción de la imagen aquí

Sergey
fuente
Bonito gráfico. Sin embargo, Brian Ogden ya te ganó: respuesta duplicada. Tenga en cuenta que cualquiera que lo haga de esta manera, si lo hace mientras está en medio de una sesión de depuración, sus solicitudes no dejarán de capturarse en Fiddler hasta que detenga y reinicie su sesión de depuración.
vapcguy
@vapcguy Tengo que admitir que mi respuesta no es diferente pero era el primero en publicar un gráfico. Brian editó su respuesta más tarde para incluir el gráfico. Sin embargo, está bien, siempre y cuando las personas obtengan sus respuestas.
Sergey
20

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

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.

* Editar: Fiddler puede necesitar reiniciarse después de agregarlo a la lista de omisión.

mikro
fuente
2
Este cambio se aplicó solo después de reiniciar Fiddler.
Bassem
@Bassem, también sin reiniciar para el mío.
Smit Patel el
9

La forma más fácil de resolver esto es configurar un filtro en Fiddler. En OnBeforeResponse, agregue el segundo if con su host / puerto vshub:

  static function OnBeforeResponse(oSession: Session) {
    if (m_Hide304s && oSession.responseCode == 304) {
        oSession["ui-hide"] = "true";
    }

    if (oSession.HostnameIs("localhost:49155")){
        oSession["ui-hide"] = "hiding vshub"; // String value not important
    }


    }
SpokaneDJ
fuente
2

La respuesta de SpokaneDJ fue muy útil para mí y funcionó muy bien, pero no paso mucho tiempo con Fiddler, ¡así que me tomó un minuto recordar cómo hacerlo! Aquí están las instrucciones específicas.


Primero, dentro de la interfaz de usuario de Fiddler, vaya a Rules> Customize Rules. Busca la OnBeforeResponsefunción. Debe tener un aspecto como este:

static function OnBeforeResponse(oSession: Session) {
  if (m_Hide304s && oSession.responseCode == 304) {
    oSession["ui-hide"] = "true";
  }
}

Ahora agregue el siguiente if bloque después del existente (sustituyendo su host / puerto vshub si es diferente):

    if (oSession.HostnameIs("localhost:49155")){
      oSession["ui-hide"] = "hiding vshub"; // String value not important
    }

Su OnBeforeResponsefunción ahora debería verse así:

  static function OnBeforeResponse(oSession: Session) {
    if (m_Hide304s && oSession.responseCode == 304) {
        oSession["ui-hide"] = "true";
    }

    if (oSession.HostnameIs("localhost:49155")){
        oSession["ui-hide"] = "hiding vshub"; // String value not important
    }
  }
Brian Lacy
fuente
0

Lo anterior no funcionó para mí, como tal. Pareció apagar TODA la supervisión del violinista del host localhost.

Un poco de google juicioso me dio otra solución: bloquear el puerto específicamente agregando esto al final de la sección OnBeforeRequest:

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

Esto parece impedir que el puerto sea reportado en Fiddler, sin interrumpir el tráfico localhost adicional.

Rich Howard
fuente
1
Debe mencionar a qué respuesta se refiere como "lo anterior", ya que las respuestas aquí pueden cambiar hacia arriba y hacia abajo en función de múltiples factores.
Sergey
Punto justo. En ese momento se aplicó a todas las otras soluciones, pero parece que se han agregado más desde entonces. Lo tendré en cuenta en el futuro.
Rich Howard