Visual Studio 2015 с обновлением 1 рассылает спам на локальный хост

118

Я установил Visual Studio Update 1 вчера и теперь при запуске служб ASP.NET локально в IIS (а не в экспресс-версии). Я вижу сотни запросов в секунду на адрес

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

Что вызывает это и можно ли это предотвратить?

Рыбный пирог
источник
30
VSHub - это компонент, который показывает использование ЦП и памяти в реальном времени при отладке. Вам не обязательно использовать его, отключите его с помощью Инструменты> Параметры> Отладка> Общие> снимите флажок «Включить средства диагностики во время отладки». Или просто не раздражайтесь этими приятными функциями отладки.
Ханс Пассан,
5
Что ж, это раздражает, когда вы используете скрипач ... спасибо KyleUp за хорошее решение
Poku
Возможный дубликат Visual Studio 2015 vshub рассылает спам скрипачу
Майкл Фрейджейм

Ответы:

109

Другой вариант, чтобы скрипач не пережевал ваш процессор, - это написать правило в скрипте, игнорирующее эти запросы. Перейдите к Правилам> Настроить правила ... найдите функцию OnBeforeRequest и добавьте

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

так что мой выглядит так:

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

как отметил @matrixugly, порт может отличаться в зависимости от версии VS. Решение @ tedd-hansen может быть лучше во всех версиях Visual Studio.

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

Вот обсуждение этой проблемы на github, чтобы лучше понять, что происходит; https://github.com/aspnet/Mvc/issues/3655

Вот еще одно сообщение о SO по той же проблеме; Visual Studio 2015 vshub рассылает спам скрипач

KyleUp
источник
2
Я только что обновился до VS2015 Update 2 сегодня утром, и в моих запросах vshub указано «localhost: 49160». Не уверен, что VS использует другой порт для каждой версии. Возможно, можно обновить условие, чтобы увидеть, начинается ли «хост» с localhost, а URL-адрес начинается с / vshub /
C. Tewalt
51

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

Он помогает с помощью всплывающих подсказок отладчика, информации о производительности, исторического опыта отладки и многого другого. Таким образом, нет способа отключить его, не нанеся серьезного ущерба расширенным функциям отладчика.

Вы можете отключить некоторые из этих функций (хотя другие функции могут по-прежнему полагаться на Vshub для выполнения внепроцессной работы в фоновом режиме):

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

Связь носит чисто местный характер и не создает серьезных накладных расходов или проблем. Есть ли конкретная причина, по которой вы хотите от него избавиться? Такие инструменты, как Fiddler, можно настроить для фильтрации по процессу, поэтому игнорировать этот трафик должно быть просто.

jessehouwing
источник
2
Я не хочу избавляться от новых функций отладки. Я просто видел, как используются ненормально высокие ресурсы ЦП (с момента установки обновления 1 вчера) как в Fiddler, так и в VS, и заметил, что эти записи появляются в Fiddler. Мне еще предстоит изучить какие-либо новые функции отладки в обновлении 1, но я оставлю их включенными, если это будет полезно для меня. Приветствия.
Fishcake
2
Я должен согласиться с @Fishcake, что это беспокоит, необходимость отфильтровывать вызовы отладчика, чтобы увидеть мои собственные вызовы httpclient, - это боль. При этом хорошая идея для фильтрации. Я понятия не имел, что это были.
hal9000
18

Так как это превратилось в способы заставить Fiddler игнорировать запросы, самый простой способ, который я нашел, - это перейти на вкладку «Фильтры» в разделе «Заголовки запроса», установить флажок «Скрыть, если URL-адрес содержит» и ввести «/ vshub /».

Скрытие с помощью фильтров

Брайан Райшл
источник
7

Я понимаю, что это не ответ, но это может помочь другим, которые приходят сюда (например, мне).

Расширяя ответ, который дал KyleUp. Добавление этого к методу «OnBeforeRequest» является немного более общим и останавливает все сообщения localhost / vshub / debug от заполнения представления в Fiddler.

if(oSession.oRequest.headers["host"].StartsWith("localhost") 
   && oSession.PathAndQuery.StartsWith("/vshub/")) {
    oSession["ui-hide"] = "true";
}
Тедд Хансен
источник
3

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

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

Mikro
источник