我昨天安装了Visual Studio Update 1,现在在IIS上本地运行ASP.NET服务(不是快速版本).我每秒都会看到数百个地址请求
http://localhost:49155/vshub/ca9dea4b016f45c68a6a8c1a07809eb4/DataWarehouseModule/dataWarehouse/getStatus/
造成这种情况的原因是什么可以预防?
防止小提琴手咀嚼CPU的另一个选择是在fiddler中写一条规则来忽略这些请求.转到规则>自定义规则...找到函数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是垃圾邮件提琴手
这是调试器将信息发送回VSHub进程.它是两个进程之间的内部通信,因此部分调试器数据收集可以在进程外进行.
它有助于调试工具提示,性能信息,历史调试体验等.因此,如果不严重削弱高级调试器功能,就无法将其关闭.
您可以关闭其中一些功能(尽管其他功能可能仍依赖于Vshub在后台执行进程外工作):
Tools> Options> Debugging> General> [ ] Enable Diagnostic Tools while debugging
通信纯粹是本地的,不会造成严重的开销或问题.你有什么特别的理由要摆脱它吗?像Fiddler这样的工具可以配置为对进程进行过滤,因此忽略此流量应该很简单.
由于这已经变成让Fiddler忽略请求的方法,我发现最简单的方法是转到过滤器选项卡,请求标题部分,选中"隐藏URL包含"框并输入"/ vshub /".
我意识到这不是答案,但它可能会帮助其他人(像我一样).
扩展KyleUp给出的答案.将此添加到"OnBeforeRequest"方法更为通用,并阻止所有localhost/vshub/debug消息填满Fiddler中的视图.
if(oSession.oRequest.headers["host"].StartsWith("localhost") && oSession.PathAndQuery.StartsWith("/vshub/")) { oSession["ui-hide"] = "true"; }