візуальна студія 2015 vshub є фаєром спаму


201

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

Я вважаю за краще не вимикати vshub; Я просто хочу, щоб це було більш тихо, коли я використовую fiddler. Наразі він викидає все інше, і я не можу робити загальну налагодження.

Хтось знає вирішення проблеми? Чи можу я заблокувати показ vshub у фіделері, не блокуючи решту 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
Дякую, @Anson. Приховування цієї величезної кількості запитів зробить 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

10
Це правильне рішення. Він негайно позбувся від усіх спам-повідомлень. Зараз я не дбаю про процесор / пам'ять, мені потрібен мій скрипт, щоб він залишався чистим, щоб я міг ним правильно користуватися. Настільки велике Дякую тобі Алекс за цей виправлення.
Пік Мікаель

6
Це допоможе лише один раз, але ви можете відключити "Діагностичні інструменти" у Vusial Studio тут: Інструменти -> Параметри -> Налагодження -> Загальне -> прапорець "Увімкнути інструменти діагностики під час налагодження"
Андрій Прохоров

1
Я не можу знайти спадне меню "Вибрати інструменти" (у Visual Studio 2015). Будь-яка ідея, де це?
Пер Лундберг

1
@PerLundberg Якщо ви не можете знайти "Вибір інструментів", спробуйте відповідь Брайана нижче (так само, як і Андрій у цих коментарях). Тепер це моє вподобане рішення просто постійно відключати моніторинг пам'яті / процесора. Якщо мені це потрібно, я знаю, як це зробити.
Олексій

Зауважте, що якщо ви перебуваєте в налагоджувальній сесії і ви працюєте з опцією Alex, тоді як ваш моніторинг пам'яті / процесора припиняється, запити не будуть, поки ви не зупините і не перезапустите свою сесію налагодження! Знайшов це важкий шлях.
vapcguy

88

Для мене виправленням припинення "спаму" на Fiddler4, замість фільтра Fiddler, який я міг би зробити, було змінити варіант Visual Studio 2015:

Visual Studio 2015 -> Інструменти -> Опції -> Налагодження -> Загальне -> зніміть / відключіть "Увімкнути діагностичні інструменти під час налагодження"

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

Послуга VSHUB.exe має бути службою, яка допомагає інструментам діагностики під час налагодження і постійно триває в пінг вашому веб-сайті / webapi / веб-програмі, яку ви налагоджуєте. Мені не потрібна налагодження. Наразі діагностичні інструменти, тому я просто відключив його у Visual Studio

Що стосується відключення VSHUB.exe, я спокусився зробити це, поки я не прочитав від когось із Microsoft, що найкраще не вимкнути його для кращого досвіду роботи Visual Studio 2015, і вони додадуть нові функції до Visual Studio, які використовують VSHUB.exe протягом час:

Як відключити VsHub.exe в системному треї?


@BrianOgden Phew! Дякую. Нарешті, відповідь VS 2015. Меню Visual Studio сильно змінилося протягом кожного випуску. Раптом цей інструмент - VsHub - став химерним, і я не знаю чому. З автоматичними оновленнями Windows 10 це могло статися так, що я не знаю.
восьминоги граббус

Зауважте, що хтось робить це таким чином, якщо ви це робите в середині налагодження сесії, ваші запити не перестануть бути захопленими у Fiddler, поки ви не зупините та не перезапустите сеанс налагодження.
vapcguy

21

Проблема викликана діагностичними інструментами Visual Studio під час налагодження.

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


Гарна графіка. Брайан Огден уже побив тебе на це, хоча - дублюю відповідь. Зауважте, що хтось робить це таким чином, якщо ви це робите в середині налагодження сесії, ваші запити не перестануть бути захопленими у Fiddler, поки ви не зупините та не перезапустите сеанс налагодження.
vapcguy

@vapcguy Я повинен визнати , що мій відповідь не відрізняється , але я був першим , щоб додати графіку. Пізніше Брайан відредагував свою відповідь, щоб включити графіку. Хоча це добре, поки люди отримують свої відповіді.
Сергій

20

Це простіша альтернатива, щоб приховати трафік vshub.

Перейдіть до Інструменти> Параметри скрипта> вкладка Підключення та додайте http://localhost:49155 до списку обходу. Це пропустить увесь трафік, розміщений на цій URL-адресі.

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


2
Ця зміна застосована лише після того, як я перезапустив Fiddler.
Бассем

@Bassem, Це також без перезавантаження для мого.
Smit Patel

9

Найпростіший спосіб вирішити це - встановити фільтр у fiddler. У OnBeforeResponse додайте друге, якщо з вашим хостом / портом 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
    }


    }

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.

Трохи розсудливий гуглінг дав мені ще одне рішення - спеціально заблокувати порт, додавши це в нижній частині розділу OnBeforeRequest:

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

Це, здається, блокує повідомлення про порт у Fiddler, не порушуючи подальший трафік локальних хостів.


1
Ви повинні згадати, яку відповідь ви називаєте "вище", оскільки відповіді тут можуть змінюватися вгору і вниз на основі багатьох факторів.
Сергій

Справедливий пункт. На той момент він застосовувався до всіх інших рішень, але, здається, було додано більше. Я матиму це на увазі в майбутньому.
Річ Говард
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.