Visual Studio 2015 pemutakhiran 1 spamming localhost

118

Saya menginstal Visual Studio Update 1 kemarin dan sekarang saat menjalankan layanan ASP.NET secara lokal di IIS (bukan versi ekspres). Saya melihat ratusan permintaan per detik ke alamat tersebut

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

Apa yang menyebabkan ini dan apakah dapat dicegah?

Kue ikan
sumber
30
VSHub adalah komponen yang menampilkan cpu langsung dan penggunaan memori saat Anda men-debug. Anda tidak harus menggunakannya, matikan dengan Tools> Options> Debugging> General> hapus centang "Aktifkan Alat Diagnostik saat debugging". Atau jangan merasa terganggu dengan fitur debugging yang bagus itu.
Hans Passant
5
Yah itu menjengkelkan ketika Anda menggunakan fiddler ... terima kasih kepada KyleUp untuk solusi yang baik
Poku
Kemungkinan duplikat dari visual studio 2015 vshub adalah spamming fiddler
Michael Freidgeim

Jawaban:

109

Pilihan lain untuk mencegah fiddler mengunyah CPU Anda adalah menulis aturan di fiddler untuk mengabaikan permintaan tersebut. Goto Rules> Customize Rules ... temukan fungsi OnBeforeRequest dan tambahkan

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

jadi milik saya terlihat seperti ini:

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

seperti yang ditunjukkan oleh @matrixugly, port bisa berbeda tergantung pada versi VS. Solusi @ tedd-hansen mungkin lebih baik di semua versi studio visual.

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

Berikut beberapa diskusi tentang masalah ini di github untuk mendapatkan pemahaman yang lebih baik tentang apa yang terjadi; https://github.com/aspnet/Mvc/issues/3655

Berikut posting lain di SO untuk masalah yang sama; visual studio 2015 vshub adalah spamming fiddler

KyleUp
sumber
2
Saya baru saja mengupgrade ke VS2015 Update 2 pagi ini, dan permintaan vshub saya memiliki "localhost: 49160". Tidak yakin apakah VS menggunakan port yang berbeda untuk setiap versi. Mungkin dapat memperbarui kondisi untuk melihat apakah "host" dimulai dengan localhost, dan url dimulai dengan / vshub /
C. Tewalt
51

Ini adalah debugger yang mengirimkan informasi kembali ke proses VSHub. Ini adalah komunikasi internal antara dua proses sehingga bagian dari pengumpulan data debugger dapat terjadi di luar proses.

Ini membantu dengan tooltips debugger, informasi kinerja, pengalaman debugging historis dan banyak lagi. Karena itu, tidak ada cara untuk mematikannya tanpa benar-benar melumpuhkan fitur debugger tingkat lanjut.

Anda dapat mematikan beberapa fitur ini (meskipun fitur lain mungkin masih mengandalkan Vshub untuk melakukan pekerjaan di luar proses di latar belakang):

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

Komunikasi tersebut murni bersifat lokal dan tidak menimbulkan overhead atau masalah yang serius. Apakah ada alasan khusus Anda ingin menyingkirkannya? Alat seperti Fiddler dapat dikonfigurasi untuk memfilter pada proses, jadi mengabaikan lalu lintas ini seharusnya mudah.

jessehouwing
sumber
2
Saya tidak ingin menghilangkan fitur debugging baru. Saya hanya melihat sumber daya CPU yang sangat tinggi digunakan (sejak menginstal pembaruan 1 kemarin) pada Fiddler dan VS dan melihat entri ini muncul di Fiddler. Saya belum menyelidiki salah satu fitur debugging baru dari Pembaruan 1 tetapi akan membiarkannya aktif jika bermanfaat bagi saya. Bersulang.
Fishcake
2
Saya harus setuju dengan @Fishcake bahwa ini mengganggu, harus memfilter panggilan debugger untuk melihat panggilan httpclient saya sendiri itu menyebalkan. Karena itu, sebaiknya filter. Saya tidak tahu apa ini.
hal9000
18

Karena ini telah berubah menjadi cara untuk membuat Fiddler mengabaikan permintaan, cara termudah yang saya temukan adalah pergi ke tab Filter, bagian Minta Header, centang kotak "Sembunyikan jika URL berisi" dan masukkan "/ vshub /".

Bersembunyi dengan Filter

Brian Reischl
sumber
7

Saya menyadari ini bukanlah jawabannya, tetapi ini dapat membantu orang lain yang datang ke sini (seperti saya).

Memperluas jawaban yang diberikan KyleUp. Menambahkan ini ke metode "OnBeforeRequest" sedikit lebih umum dan menghentikan semua pesan localhost / vshub / debug mengisi tampilan di Fiddler.

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

Ini adalah alternatif yang lebih mudah untuk menyembunyikan lalu lintas localhost vshub.

Buka Alat> Opsi Fiddler> tab Koneksi dan tambahkan http://localhost:49155ke daftar pintasan. Ini akan melewatkan semua lalu lintas yang diposkan ke Url itu.

mikro
sumber