어제 Visual Studio 업데이트 1을 설치 했고 지금은 IIS (익스프레스 버전이 아님)에서 로컬로 ASP.NET 서비스를 실행할 때 설치했습니다 . 주소에 대해 초당 수백 건의 요청이 표시됩니다.
http://localhost:49155/vshub/ca9dea4b016f45c68a6a8c1a07809eb4/DataWarehouseModule/dataWarehouse/getStatus/
원인은 무엇이며 예방할 수 있습니까?
어제 Visual Studio 업데이트 1을 설치 했고 지금은 IIS (익스프레스 버전이 아님)에서 로컬로 ASP.NET 서비스를 실행할 때 설치했습니다 . 주소에 대해 초당 수백 건의 요청이 표시됩니다.
http://localhost:49155/vshub/ca9dea4b016f45c68a6a8c1a07809eb4/DataWarehouseModule/dataWarehouse/getStatus/
원인은 무엇이며 예방할 수 있습니까?
답변:
피들러가 CPU를 씹는 것을 방지하는 또 다른 옵션은 이러한 요청을 무시하는 규칙을 피들러에 작성하는 것입니다. 규칙> 규칙 사용자 지정 ...으로 이동하여 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에 의존하여 백그라운드에서 out-of-process 작업을 수행 할 수 있음).
Tools> Options> Debugging>General > [ ] Enable Diagnostic Tools while debugging
통신은 순전히 로컬이며 심각한 오버 헤드 나 문제를 일으키지 않습니다. 그것을 없애고 싶은 특별한 이유가 있습니까? Fiddler와 같은 도구는 프로세스를 필터링하도록 구성 할 수 있으므로이 트래픽을 무시하는 것은 간단해야합니다.
나는 이것이 답이 아니라는 것을 알고 있지만 여기에 오는 다른 사람들에게 도움이 될 수 있습니다 (나와 같은).
KyleUp이 제공 한 답변을 확장합니다. 이것을 "OnBeforeRequest"메소드에 추가하는 것은 좀 더 일반적이며 모든 localhost / vshub / 디버그 메시지가 Fiddler에서 뷰를 채우지 못하도록합니다.
if(oSession.oRequest.headers["host"].StartsWith("localhost")
&& oSession.PathAndQuery.StartsWith("/vshub/")) {
oSession["ui-hide"] = "true";
}