visual studio 2015 vshub - это спам-скрипач

201

Я прочитал: Как отключить VsHub.exe в системном трее? и https://connect.microsoft.com/VisualStudio/feedback/details/1919828/hundreds-of-calls-second-to-vshub-and-browserlink-is-off

Я бы предпочел не отключать vshub; Я просто хочу, чтобы это было более тихо, когда я использую скрипач. Прямо сейчас это спамит все остальное, и я не могу делать общую отладку.

Кто-нибудь знает обходной путь? Могу ли я заблокировать показ vshub в fiddler, не блокируя остальную часть locahost?

Грег Нетланд
источник

Ответы:

268

Это относительно новая проблема, поскольку в System.NET игнорировались параметры прокси-сервера для localhost, и поэтому Fiddler не будет видеть трафик по умолчанию ( http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureDotNETApp ). - см. нижнюю часть.

Теперь это, похоже, уже не так, поэтому я ожидаю, что у большего количества людей будет такой же вопрос. Fiddler поддерживает несколько способов фильтрации запросов, но ничего, что клиент не может контролировать (что, вероятно, хорошо, поскольку вы не хотели бы, чтобы вредоносное ПО исключало его трафик). Наиболее подходящим и простым механизмом в этом случае, вероятно, является установка фильтра для любого URL, содержащего localhost или vshub. Вы можете сделать это:

  1. Перейдите на вкладку фильтров (это вкладка верхнего уровня, на том же уровне, что и инспекторы, статистика и т. Д.),
  2. Установите флажок «Использовать фильтры»
  3. Прокрутите вниз и найдите флажок «Скрыть, если URL содержит».
  4. Установите этот флажок и введите localhost или vshub в соответствующее текстовое поле.
  5. Вы должны увидеть остановку трафика vshub немедленно.

Этот фильтр сохранится, поэтому, если вы выключите Fiddler и запустите его позже, он все равно будет установлен.

Энсон Хортон
источник
4
Спасибо, Ансон. Сокрытие этого огромного количества запросов сделает Fiddler снова пригодным для использования. Но это все еще остается серьезной проблемой, конечно. Это также заставляет задуматься, почему Visual Studio или любой последующий связанный с ним процесс делает эти запросы в первую очередь (реторическими). Если вас это тоже не устраивает, добавьте голосование по ошибке MS Connect # 1919828 и / или через проблему ASP.NET MVC # 3655 .
Juliën
4
Просто чтобы добавить вы можете использовать || оператор в поле «Скрыть, если URL содержит», если вы хотите скрыть другие запросы, такие как ссылка на браузер.
Ник Спайсер
4
@Moriarty re: ...why Visual Studio is making these requests... ну, это потому, что процессы взаимодействуют друг с другом через HTTP на адаптере обратной связи. , Этот трафик был сгенерирован на некоторое время; только недавно было изменено, что по умолчанию это видно по HTTP прокси ... так что я не совсем уверен, почему вы считаете это ошибкой.
К. Алан Бейтс
2
Я уверен, что это побочный эффект новых инструментов удаленной отладки в Visual Studio 2015. Я бы даже сделал ставку на кроссплатформенную отладку Cordova на устройствах Apple. Вероятно, они построили эти изменения таким образом, чтобы позднее они могли распространить его на другие платформы, что и привело к глобальным изменениям.
Бон
1
Это не правильное решение. Это просто скрывает проблему. Решения, приведенные ниже: удаление диагностических инструментов при отладке в VS - это верное решение.
Рафи
132

Эти запросы, похоже, поступают из окна средств диагностики, которое запускается при отладке. Похоже, что они предоставляют информацию мониторинга для использования памяти и использования процессора.

Вы можете остановить запросы, если не хотите просматривать информацию об использовании, отключив мониторинг памяти / ЦП в диалоговом окне Средства диагностики.

  • Откройте окно инструментов диагностики (Отладка -> Windows -> Показать инструменты диагностики)
  • Нажмите раскрывающийся список «Выбрать инструменты» и снимите флажок Использование памяти и Загрузка процессора.
  • Прекратите отладку, и в следующий раз, когда вы начнете отлаживать, вы больше не увидите запросы, отправляемые на vshub.
Alex
источник
10
Это правильное решение. Он сразу же избавился от всего спам-сообщения. Сейчас мне нет дела до процессора / памяти, мне нужно, чтобы мой скрипач оставался чистым, чтобы я мог правильно его использовать. Огромное спасибо тебе, Алекс, за это исправление.
Рис Микаэль
6
Это поможет только один раз, но вы можете отключить «Средства диагностики» в Vusial Studio здесь: Инструменты -> Параметры -> Отладка -> Общие -> флажок «Включить средства диагностики при отладке»
Андрей Прохоров
1
Не удается найти раскрывающийся список «Выбор инструментов» (в Visual Studio 2015). Есть идеи, где это?
Пер Лундберг
1
@PerLundberg Если вы не можете найти «Выбор инструментов», попробуйте ответ Брайана ниже (такой же, как у Андрея в этих комментариях). Теперь это мое предпочтительное решение, чтобы постоянно отключать мониторинг памяти / процессора. Если мне это нужно, я знаю, как включить его.
Алекс
Обратите внимание, что если вы находитесь в сеансе отладки и выполняете опцию Алекса, в то время как мониторинг памяти / ЦП будет остановлен, запросы не будут выполняться, пока вы не остановите и не перезапустите сеанс отладки! Выяснил это трудным путем.
vapcguy
88

Для меня исправление, чтобы перестать «спамить» Fiddler4 вместо фильтра Fiddler, который я мог бы выбрать, заключалось в изменении параметра Visual Studio 2015:

Visual Studio 2015 -> Инструменты -> Параметры -> Отладка -> Общие -> снимите флажок / отключите «Включить средства диагностики при отладке»

введите описание изображения здесь

Служба VSHUB.exe должна быть службой, которая помогает диагностическим инструментам во время отладки и постоянно проверяет ваш веб-сайт / веб-приложение / веб-приложение, которое вы отлаживаете. Мне не нужна отладка. Средства диагностики в настоящее время, поэтому я просто отключил его в Visual Studio

Что касается отключения VSHUB.exe, у меня возникло искушение сделать это, пока я не прочитал от кого-то в Microsoft, лучше не отключать его для улучшения работы Visual Studio 2015, и они добавляют новые функции в Visual Studio, которые используют VSHUB.exe поверх время:

Как отключить VsHub.exe в системном трее?

Брайан Огден
источник
@BrianOgden Фу! Спасибо. Наконец, ответ VS 2015. Меню Visual Studio сильно менялись с каждым выпуском. Внезапно этот инструмент - VsHub - вышел из строя, и я не знаю почему. С автоматическим обновлением Windows 10 это могло произойти без моего ведома.
Осьминогу
Обратите внимание, что для тех, кто делает это таким образом, если вы делаете это в середине сеанса отладки, ваши запросы не перестанут регистрироваться в Fiddler, пока вы не остановите и не перезапустите сеанс отладки.
vapcguy
21

Проблема вызвана средствами диагностики Visual Studio при отладке.

Вы можете отключить их, перейдя в ИнструментыПараметры , а затем выполните следующие действия: введите описание изображения здесь

Сергей
источник
Хорошая графика. Брайан Огден уже опередил вас, хотя - двойной ответ. Обратите внимание, что для тех, кто делает это таким образом, если вы делаете это в середине сеанса отладки, ваши запросы не перестанут регистрироваться в Fiddler, пока вы не остановите и не перезапустите сеанс отладки.
vapcguy
@vapcguy Я должен признать, что мой ответ не отличается, но я был первым, кто опубликовал рисунок. Брайан отредактировал свой ответ позже, чтобы включить рисунок. Это нормально, пока люди получают ответы.
Сергей
20

Это более простая альтернатива, чтобы скрыть трафик vshub.

Перейдите в Инструменты> Параметры Fiddler> вкладка Подключения и добавьте http://localhost:49155в список обхода. Это пропустит весь трафик, размещенный на этот URL.

* Изменить: Fiddler может потребоваться перезапустить после добавления в список обхода.

Mikro
источник
2
Это изменение было применено только после того, как я перезапустил Fiddler.
Бассем
@Bassem, у меня тоже без перезагрузки.
Смит Патель
9

Самый простой способ решить эту проблему - настроить фильтр в Fiddler. В OnBeforeResponse добавьте второй if с вашим хостом / портом 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
источник
2

Ответ SpokaneDJ был очень полезным для меня и работал отлично, но я не провожу много времени с Fiddler, поэтому мне потребовалась минута, чтобы вспомнить, как это сделать! Вот конкретные инструкции.


Сначала в интерфейсе Fiddler перейдите на Rules> Customize Rules. Поиск OnBeforeResponseфункции. Это должно выглядеть так:

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

Теперь добавьте следующий if блок после существующего (заменив хост / порт vshub, если он другой):

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

Ваша OnBeforeResponseфункция должна теперь выглядеть так:

  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
    }
  }
Брайан Лейси
источник
0

Вышеупомянутое не работает для меня, как таковой. Похоже, что он отключил ВСЕ мониторинг скрипачей хоста localhost.

Немного рассудительного поиска в Google дал мне другое решение - специально заблокировать порт, добавив его в конец раздела OnBeforeRequest:

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

Это, кажется, блокирует сообщение порта в Fiddler, не нарушая дальнейший трафик localhost.

Рич Ховард
источник
1
Вы должны указать, какой ответ вы называете «выше», поскольку ответы здесь могут сдвигаться вверх и вниз в зависимости от множества факторов.
Сергей
Честная оценка. В то время он применялся ко всем остальным решениям, но, похоже, с тех пор было добавлено больше. Я учту это в будущем.
Рич Ховард