Visual Studio 2015 Update 1 Spamming localhost


118

J'ai installé Visual Studio Update 1 hier et maintenant lors de l'exécution des services ASP.NET localement sur IIS (pas la version express). Je vois des centaines de requêtes par seconde à l'adresse

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

Qu'est-ce qui cause cela et est-ce évitable?


30
VSHub est le composant qui montre l'utilisation du processeur en direct et de la mémoire lors du débogage. Vous n'êtes pas obligé de l'utiliser, désactivez-le avec Outils> Options> Débogage> Général> décochez "Activer les outils de diagnostic lors du débogage". Ou ne soyez pas ennuyé par ces jolies fonctionnalités de débogage.
Hans Passant

5
Eh bien, c'est ennuyeux quand vous utilisez un violoneux ... merci à KyleUp pour une bonne solution
Poku

Réponses:


109

Une autre option pour empêcher Fiddler de mâcher votre CPU est d'écrire une règle dans Fiddler pour ignorer ces requêtes. Aller aux règles> Personnaliser les règles ... trouver la fonction OnBeforeRequest et ajouter

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

donc le mien ressemble à ceci:

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

comme @matrixugly l'a souligné, le port peut être différent selon la version de VS. La solution de @ tedd-hansen pourrait être meilleure dans toutes les versions de Visual Studio.

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

Voici quelques discussions sur ce problème sur github pour mieux comprendre ce qui se passe; https://github.com/aspnet/Mvc/issues/3655

Voici un autre article sur SO pour le même problème; visual studio 2015 vshub est un violoniste spam


2
Je viens de passer à VS2015 Update 2 ce matin, et mes requêtes vshub ont "localhost: 49160". Je ne sais pas si VS utilise un port différent pour chaque version. Peut probablement mettre à jour la condition pour voir si "host" commence par localhost, et que l'URL commence par / vshub /
C. Tewalt

51

Il s'agit du débogueur qui renvoie les informations au processus VSHub. Il s'agit d'une communication interne entre les deux processus afin qu'une partie de la collecte de données du débogueur puisse se produire hors processus.

Il facilite les info-bulles du débogueur, les informations sur les performances, l'expérience de débogage historique, etc. En tant que tel, il n'y a aucun moyen de le désactiver sans paralyser sérieusement les fonctionnalités avancées du débogueur.

Vous pouvez désactiver certaines de ces fonctionnalités (bien que d'autres fonctionnalités puissent toujours compter sur Vshub pour effectuer un travail hors processus en arrière-plan):

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

La communication est purement locale et ne pose pas de problèmes ou de frais généraux sérieux. Y a-t-il une raison spécifique pour laquelle vous souhaitez vous en débarrasser? Des outils comme Fiddler peuvent être configurés pour filtrer sur le processus, donc ignorer ce trafic devrait être simple.


2
Je ne veux pas me débarrasser des nouvelles fonctionnalités de débogage. Je voyais simplement des ressources CPU anormalement élevées utilisées (depuis l'installation de la mise à jour 1 hier) sur Fiddler et VS et j'ai remarqué que ces entrées apparaissaient dans Fiddler. Je n'ai pas encore étudié les nouvelles fonctionnalités de débogage de la mise à jour 1, mais je les laisserai activées si cela me convient. À votre santé.
Fishcake

2
Je suis d'accord avec @Fishcake pour dire que cela est dérangeant, devoir filtrer les appels de débogage pour voir mes propres appels httpclient est pénible. Cela étant dit, bonne idée de filtrer. Je n'avais aucune idée de ce que c'était.
hal9000

18

Puisque cela s'est transformé en moyens pour que Fiddler ignore les demandes, le moyen le plus simple que j'ai trouvé est d'aller dans l'onglet Filtres, section En-têtes de demande, cochez la case "Masquer si l'URL contient" et entrez "/ vshub /".

Masquer avec des filtres


7

Je me rends compte que ce n'est pas la réponse, mais cela peut aider d'autres qui viennent ici (comme moi).

Élargissement de la réponse donnée par KyleUp. L'ajout de ceci à la méthode "OnBeforeRequest" est un peu plus général et empêche tous les messages localhost / vshub / debug de remplir la vue dans Fiddler.

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

3

C'est une alternative plus simple pour masquer le trafic localhost vshub.

Accédez à Outils> Options Fiddler> onglet Connexions et ajoutez http://localhost:49155à la liste de contournement. Cela ignorera tout le trafic publié sur cette URL.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.