Bản cập nhật Visual Studio 2015 1 gửi spam localhost


118

Tôi đã cài đặt Visual Studio Update 1 ngày hôm qua và bây giờ khi chạy dịch vụ ASP.NET cục bộ trên IIS (không phải phiên bản express). Tôi thấy hàng trăm yêu cầu mỗi giây đến địa chỉ

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

Điều gì đang gây ra điều này và nó có thể ngăn ngừa được không?


30
VSHub là thành phần hiển thị việc sử dụng CPU và bộ nhớ trực tiếp khi bạn gỡ lỗi. Bạn không cần phải sử dụng nó, hãy tắt nó bằng Tools> Options> Debugging> General> bỏ chọn "Enable Diagnostic Tools trong khi gỡ lỗi". Hoặc chỉ cần không cảm thấy khó chịu bởi những tính năng gỡ lỗi tốt đẹp đó.
Hans Passant

5
Vâng đó là gây phiền nhiễu khi bạn đang sử dụng cáy ... nhờ KyleUp cho một giải pháp tốt
Poku

Câu trả lời:


109

Một tùy chọn khác để ngăn fiddler nhai CPU của bạn là viết một quy tắc trong fiddler để bỏ qua những yêu cầu đó. Goto Rules> Customize Rules ... tìm chức năng OnBeforeRequest và thêm

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

vì vậy của tôi trông như thế này:

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

như @matrixugly đã chỉ ra rằng cổng có thể khác nhau tùy thuộc vào phiên bản của VS. Giải pháp của @ tedd-hansen có thể tốt hơn trên tất cả các phiên bản studio trực quan.

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

Dưới đây là một số thảo luận về vấn đề này trên github để hiểu rõ hơn về những gì đang xảy ra; https://github.com/aspnet/Mvc/issues/3655

Đây là một bài đăng khác trên SO cho cùng một vấn đề; visual studio 2015 vshub đang spam fiddler


2
Tôi vừa nâng cấp lên VS2015 Update 2 sáng nay và các yêu cầu vshub của tôi có "localhost: 49160". Không chắc liệu VS có sử dụng một cổng khác nhau cho mỗi phiên bản hay không. Có thể cập nhật điều kiện để xem liệu "máy chủ" có bắt đầu bằng localhost hay không và url bắt đầu bằng / vshub /
C. Tewalt

51

Đây là trình gỡ lỗi gửi thông tin trở lại quy trình VSHub. Đó là giao tiếp nội bộ giữa hai quy trình để một phần của quá trình thu thập dữ liệu trình gỡ lỗi có thể xảy ra ngoài quy trình.

Nó giúp với chú giải công cụ gỡ lỗi, thông tin hiệu suất, trải nghiệm gỡ lỗi lịch sử và hơn thế nữa. Vì vậy, không có cách nào để tắt nó mà không làm tê liệt nghiêm trọng các tính năng của trình gỡ lỗi nâng cao.

Bạn có thể tắt một số tính năng này (mặc dù các tính năng khác vẫn có thể dựa vào Vshub để thực hiện công việc ngoài quy trình trong nền):

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

Thông tin liên lạc hoàn toàn mang tính địa phương và không đặt ra vấn đề hoặc chi phí nghiêm trọng. Có lý do cụ thể nào mà bạn muốn loại bỏ nó không? Các công cụ như Fiddler có thể được định cấu hình để lọc theo quy trình, vì vậy việc bỏ qua lưu lượng này sẽ đơn giản.


2
Tôi không muốn loại bỏ bất kỳ tính năng gỡ lỗi mới nào. Tôi chỉ đơn giản là thấy tài nguyên CPU cao bất thường đang được sử dụng (kể từ khi cài đặt bản cập nhật 1 ngày hôm qua) trên cả Fiddler và VS và nhận thấy các mục này xuất hiện trong Fiddler. Tôi vẫn chưa điều tra bất kỳ tính năng gỡ lỗi mới nào của Bản cập nhật 1 nhưng sẽ bật chúng nếu có lợi cho tôi. Chúc mừng.
Bánh cá

2
Tôi phải đồng ý với @Fishcake rằng những điều này thật đáng lo ngại, việc phải lọc ra các cuộc gọi trình gỡ lỗi để xem các cuộc gọi httpclient của riêng tôi là một điều khó khăn. Điều đó đang được nói, ý tưởng tốt để lọc. Tôi không biết đây là những gì.
hal9000

18

Vì điều này đã trở thành cách để khiến Fiddler bỏ qua các yêu cầu, nên cách dễ nhất mà tôi tìm thấy là chuyển đến tab Bộ lọc, phần Tiêu đề yêu cầu, chọn hộp "Ẩn nếu URL chứa" và nhập "/ vshub /".

Ẩn với Bộ lọc


7

Tôi nhận ra đây không phải là câu trả lời, nhưng nó có thể giúp ích cho những người khác đến đây (như tôi).

Mở rộng câu trả lời mà KyleUp đã đưa ra. Thêm điều này vào phương thức "OnBeforeRequest" tổng quát hơn một chút và ngăn tất cả các thông báo localhost / vshub / debug lấp đầy chế độ xem trong Fiddler.

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

3

Đây là một giải pháp thay thế dễ dàng hơn để ẩn lưu lượng truy cập vshub localhost.

Chuyển đến tab Tools> Fiddler Options> Connections và thêm http://localhost:49155vào danh sách bỏ qua. Thao tác này sẽ bỏ qua tất cả lưu lượng được đăng lên Url đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.