I have read: How do I disable VsHub.exe in the system tray? and https://connect.microsoft.com/VisualStudio/feedback/details/1919828/hundreds-of-calls-second-to-vshub-and-bro
The issue is caused by Visual Studio's Diagnostic Tools while debugging.
You can disable them by going to Tools ➜ Options, and then following the steps:
SpokaneDJ's answer was very helpful for me and worked great, but I don't spend a lot of time with Fiddler so it took me a minute to remember how to do this! Here are the specific instructions.
First, within the Fiddler UI, go to Rules
> Customize Rules
. Search for the OnBeforeResponse
function. It should look like this:
static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
}
Now add the following if
block after the existing one (substituting your vshub host/port if different):
if (oSession.HostnameIs("localhost:49155")){
oSession["ui-hide"] = "hiding vshub"; // String value not important
}
Your OnBeforeResponse
function should now look like this:
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
}
}
The above didn't work for me, as such. It seemed to shut down ALL fiddler monitoring of the localhost host.
A bit of judicious googling gave me another solution - to block the port specifically by adding this to the bottom of the OnBeforeRequest section:
if (oSession.host=="localhost:49155"){
oSession["ui-hide"] = "true";
}
This seems to block the port from being reported in Fiddler, without disrupting further localhost traffic.
This is a relatively new problem because System.NET used to ignore proxy settings for localhost, and therefore Fiddler wouldn't see the traffic by default (http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureDotNETApp) - see bottom section.
Now this no longer appears to be the case, so I expect more people will have the same question. Fiddler supports several ways to filter requests, though nothing that the client can control (which is probably good, since you wouldn't want malware from excluding its traffic). The most appropriate and simplest mechanism in this case is probably to set a filter for any url that contains localhost or vshub. You can do that by:
This filter will persist, so if you shutdown Fiddler and start it up again later, it will still be set.
The easiest way to resolve this is to setup a filter in fiddler. In the OnBeforeResponse, add the second if with your vshub host/port:
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
}
}
These requests seem to come from the Diagnostic Tools window which runs when debugging. Seems as though they provide the monitoring information for Memory Usage and CPU Usage.
You can stop the requests if you don't care to see the usage information by disabling Memory/CPU monitoring in the Diagnostic Tools dialog box.