Bagaimana mengatasi ERR_CONNECTION_REFUSED ketika mencoba untuk menyambung ke localhost menjalankan IISExpress - Kesalahan 502 (Tidak dapat men-debug dari Visual Studio)?

100

Ini berjalan di Windows Server 2008 dan digunakan untuk bekerja beberapa bulan lalu. Saya baru saja menggunakan server ini lagi untuk beberapa pekerjaan dev dengan VS.

Ini adalah server web langsung yang digunakan untuk melayani beberapa situs pengujian juga.

Ini muncul saat menjalankan Visual Studio, kemudian meluncurkan proyek saya untuk debugging.

Mencoba meluncurkan situs apa pun melalui localhost:xxxxketika IISExpress telah diluncurkan (menggunakan port sebenarnya # di konfigurasi untuk mengakses situs yang berbeda):

This webpage is not available

ERR_CONNECTION_REFUSED

Saya telah melakukan ini selama beberapa hari, karena saya telah membaca orang lain memiliki masalah yang sama, mencoba sebagian besar hal yang telah saya baca termasuk mengubah managedruntimeversiondari "v4.0" menjadi "v4.0.30319" untuk .net 4.5 (saya tidak pernah harus melakukan ini sebelumnya) dan menonaktifkan modul logging (semua saran ditemukan di sini ).

Hanya ada dua entri di hostsfile saya yang mengarah ke alamat IP server internal. Tidak ada localhostIP atau referensi terkait.

Saya telah menginstal ulang IIS Express, dan Visual Studio 2013. Saya juga membuat WebApplicationsitus baru untuk mencoba menyelesaikan masalah ini (sederhana dan tidak ada binding rumit lainnya).

Ketika saya menjalankan Fiddler, saya melihat yang berikut ini di halaman:

[Fiddler] The socket connection to localhost failed. 
ErrorCode: 10061. 
No connection could be made because the target machine actively refused it 127.0.0.1:23162

Penangkapan fiddler

Saya telah menghapus semua pengaturan proxy dari bagian koneksi LAN IE, di mana sebelumnya saya mendapatkan popup merah-x di VS yang menunjukkan sesuatu seperti IISExpress tidak dapat diluncurkan .

Ini bukan masalah SSL vs non SSL.

Saya telah menginstal TFS Server - mencopot pemasangannya jika ada beberapa pengikatan aneh yang mengganggu.

Saya mencoba menghapus folder config / settings IISExpress beberapa kali.

Applicationhost.config saat ini berisi:

<site name="WebApplication1" id="4">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="C:\TFS-WorkRepository\Sandbox\WebApplication1\WebApplication1" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:23162:localhost" />
                </bindings>
            </site>
            <siteDefaults>
                <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
                <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
            </siteDefaults>
            <applicationDefaults applicationPool="Clr4IntegratedAppPool" />

Saya berharap ada tag untuk really-stuck.

Tolong sarankan, karena saya tidak ingin pergi sejauh-jauhnya dengan memutar server baru.

- PEMBARUAN -

Di bilah URL, ketika saya memasukkan nama komputer atau alamat IP: xxxx saya mendapatkan ERR_CONNECTION_TIMED_OUTdaripada ERR_CONNECTION_REFUSED.

ElHaix
sumber

Jawaban:

100

Coba ubah nomor port di proyek Anda?

Properti Proyek → Web → Server → Url Proyek:

masukkan deskripsi gambar di sini

Jangan lupa untuk mengklik Create Virtual Directory, atau membalas "Ya" pada prompt untuk membuat direktori virtual setelah Anda mengubah nomor port Anda! (Terima kasih Connor )

Catatan: Saya agak enggan untuk memposting ini sebagai jawaban, karena saya tidak tahu apa masalahnya atau apa penyebabnya, tetapi saya memiliki masalah serupa, dan mengubah nomor port melakukan trik bagi saya. Saya hanya memposting ini sesuai saran di komentar bahwa ini juga berfungsi untuk orang lain.

Dalam kasus saya, sepertinya ada sesuatu yang bertentangan dengan nomor port tertentu yang saya gunakan, jadi saya mengganti ke nomor port lain, dan situs saya langsung muncul kembali! Saya tidak yakin apa artinya untuk nomor port lama, atau apakah saya akan dapat menggunakannya lagi. Mungkin seseorang yang lebih berpengetahuan dari saya bisa ikut campur dalam hal ini.

sǝɯɐſ
sumber
1
ini berhasil untuk saya - daripada mengubah pengaturan browser seperti yang disebutkan dalam Jawaban stackoverflow.com/questions/7227845/…
Don Cheadle
ini berhasil untuk saya. setelah mengubah nomor port, saya diminta untuk mengubah direktori virtual saya, yang entah bagaimana berubah menjadi salah.
GraehamF
Ini juga berhasil untuk saya. Tidak tahu bagaimana itu terjadi. Saya menghentikan IIS Express, dan menjalankan berikutnya, tidak ada apa-apa selain kesalahan.
Joseph Ferris
1
Pastikan untuk mengklik 'Buat Direktori Virtual' setelah Anda mengubah nomor port Anda!
Connor Williams
Baru saja ini terjadi pada saya lagi hari ini! : / Meskipun saya senang saran saya membantu orang, saya berharap saya bisa mencari tahu apa yang salah. Perlahan-lahan melalui nomor port yang dapat digunakan di sini: P
sǝɯɐſ
37

Terima kasih atas semua jawabannya. Saya mencoba semuanya tetapi tidak ada yang berhasil untuk saya. Apa yang berhasil adalah menghapus applicationhost.config dari folder .vs (ditemukan di folder proyek / solusi Anda) dan membuat direktori virtual baru (Properti Proyek> Web> Buat Direktori Virtual). Semoga ini bisa membantu orang lain.

Annie Lagang
sumber
3
Saya mengalami masalah yang sama ketika saya membuka solusi VS2015 di VS2013 dan bekerja di dalamnya untuk sementara waktu dan kemudian kembali ke VS2015. Menghapus applicationhost.config menyelesaikannya.
Gary Ray
Dalam kasus saya applicationhost.config dan memulai ulang Visual Studio menyebabkan "proyek memuat gagal". Saya bahkan tidak bisa mengakses properti proyek saat itu.
Alex
34

Masalah ini mungkin karena di masa lalu Anda telah menggunakan alamat IP yang mengikat dalam konfigurasi aplikasi Anda.

Langkah-langkah untuk Mengatasi masalah:

  • Jalankan di bawah perintah di terminal perintah akses administrator

netsh http tampilkan iplisten

Jika Anda melihat beberapa hal seperti di bawah ini maka solusi ini mungkin tidak membantu Anda.

Alamat IP yang ada di daftar mendengarkan IP:

0.0.0.0

Jika Anda melihat sesuatu yang berbeda dari 0.0.0.0, coba langkah-langkah di bawah ini untuk memperbaikinya.

  • Jalankan perintah shell berikut secara berurutan dengan terminal perintah yang ditinggikan

netsh http hapus iplisten ipaddress = 11.22.33.44

netsh http tambahkan iplisten ipaddress = 0.0.0.0

iisreset.dll

  • (Di sini 11.22.33.44 adalah IP sebenarnya yang perlu dihapus)

Dan sekarang issexpress Anda disetel untuk mendengarkan semua ping yang masuk ke pengikatan localhost.

Niraj Kumar Chauhan
sumber
@Niraj Kumar Chauhan menyelamatkan day bud !! Lifesaver ... Tidak yakin bagaimana 0.0.0.0 dihapus pada awalnya, tetapi menambahkannya kembali menyelesaikan masalah.
Sethles
Setelah tujuh jam mencari mengapa Server Laporan Power BI tidak mendengarkan dengan benar: 2 detik melakukan ini memperbaikinya. Terima kasih! Konfigurasi kami yang ada memiliki '::' bukan 0.0.0.0; Apakah ini tidak sama dan / atau bagaimana ini bisa diubah?
MattV
Hei, berhasil! Di komputer saya, perintah pertama menunjukkan alamat IP nol, jadi saya cukup menjalankan perintah "tambah" dan perintah "iisreset". Setelah itu, saya masih perlu menerapkan ulang proyek saya dan memulai ulang IIS untuk kedua kalinya, tetapi kemudian berhasil.
Mathew Alden
20

Saya baru saja memperbaiki ini untuk mesin saya. Mungkin itu akan berhasil untuk beberapa orang. Mungkin bukan untuk orang lain, tapi inilah yang berhasil untuk saya.

Di IIS, saya harus menambahkan binding untuk https ke situs web default (atau, saya kira, situs web tempat Anda menjalankan aplikasi).

masukkan deskripsi gambar di sini

Sekarang localhost saya berfungsi saat debugging dari Visual Studio.

Stuart
sumber
Sebagai catatan, pemeriksaan untuk melihat apakah ini masalahnya hanyalah mengubah https menjadi http di URL Anda, karena pengikatan http seharusnya sudah ada.
DubDub
Ini memperbaikinya untuk saya. Saya menduga bahwa ketika saya memberi tahu Visual Studio untuk membangun aplikasi kedua ke server IIS dev saya, sesuatu pasti telah menghapus binding dari aplikasi pertama saya.
Mathew Alden
7

Saya memiliki masalah yang sama. Saya mencoba langkah-langkah ini:

  1. Menutup Visual Studio 2017
  2. Menghapus [solutionPath] .vs \ config \ applicationhost.config
  3. Membuka kembali solusi dan mengklik [Buat Direktori Virtual]
  4. Mencoba menjalankan => ERR_CONNECTION_REFUSED
  5. GAGAL

Coba lagi:

  1. Menutup Visual Studio 2017
  2. Menghapus [solutionPath] .vs \ config \ applicationhost.config
  3. Menghapus. \ Documents \ IISExpress \ config \ applicationhost.config
  4. Membuka kembali solusi dan mengklik [Buat Direktori Virtual]
  5. Mencoba menjalankan => ERR_CONNECTION_REFUSED
  6. GAGAL

Coba lagi:

  1. Menutup Visual Studio 2017
  2. Menghapus [solutionPath] .vs \ config \ applicationhost.config
  3. Menghapus. \ Documents \ IISExpress \ config \ applicationhost.config
  4. Menambahkan 127.0.0.1 localhost ke C: \ Windows \ System32 \ drivers \ etc \ hosts
  5. Membuka kembali solusi dan mengklik [Buat Direktori Virtual]
  6. Mencoba menjalankan => ERR_CONNECTION_REFUSED
  7. GAGAL

APA BEKERJA:

  1. Tutup Visual Studio 2017
  2. Hapus [solutionPath] .vs \ config \ applicationhost.config
  3. Mulai "Kelola sertifikat komputer" dan Cari sertifikat "localhost" di Pribadi-> Sertifikat masukkan deskripsi gambar di sini
  4. Hapus sertifikat itu (lakukan ini dengan risiko Anda sendiri)
  5. Mulai Panel Kontrol \ Semua Item Panel Kontrol \ Program dan Fitur
  6. Cari "IIS 10.0 Express" (atau versi IIS Express Anda sendiri)
  7. Klik "Perbaiki" masukkan deskripsi gambar di sini
  8. Buka kembali solusi dan klik [Buat Direktori Virtual]
  9. Mulai proyek web.
  10. Anda akan mendapatkan pertanyaan ini: masukkan deskripsi gambar di sini. Klik "Ya"
  11. Anda akan mendapatkan pertanyaan ini: masukkan deskripsi gambar di sini. Klik "Ya"
  12. Sekarang berhasil.
Lucian
sumber
6

Solusi Sam berhasil untuk saya, tetapi saya tidak ingin menjalankan sebagai admin sebagai solusi permanen.

Beginilah cara saya menyelesaikannya dalam kasus saya:

  1. Jalankan CMD sebagai admin
  2. Ketik "netsh http show urlacl" dan temukan url yang dipesan dengan port yang relevan
  3. Ketik "netsh http delete urlacl url = YourReservedUrlHere"

Setelah itu saya dapat menjalankan aplikasi saya tanpa memerlukan hak admin. Tapi itu mengacaukan kemampuan untuk menelusuri aplikasi saya dari komputer eksternal. Cukup dekat untukku untuk saat ini.

RoyBS
sumber
Terima kasih, memecahkan masalah saya. Setelah menghapus URL yang dicadangkan, buat ulang proyek dan kemudian berfungsi dengan sempurna tanpa mode Admin.
Parveen
5

Dalam kasus saya, hal itu disebabkan oleh memulai IIS tanpa hak administratif. Ketika saya meluncurkan IIS sebagai admin dan memulai situs itu bekerja dengan baik

sam
sumber
Ini adalah jawaban untuk saya, meskipun saya tidak ingat menjalankan VS sebagai administrator saat pertama kali saya membuka proyek ketika berhasil.
Stafford Williams
oh ya duh (menampar dahi)
johntrepreneur
3

Dalam kasus saya, itu disebabkan oleh loop / stack overflow yang tak terbatas.

Josh
sumber
1

Saya memecahkan masalah ini dengan memulai Visual Studio dengan Run as administrator. Ini juga diperlukan jika Anda ingin mempublikasikan proyek Anda ke IIS lokal.

Untuk mengatur ini secara permanen: -

  1. Klik kanan pada ikon Visual Studio
  2. Pilih Properties
  3. Klik Advanced
  4. Pastikan Run as administratorsudah diperiksa
  5. Klik OK sepanjang jalan keluar.
  6. Mulai Visual Studio, muat proyek Anda dan mulai debugging
joehanna
sumber
1

Dalam kasus saya, rekan kerja saya mengubah nama solusi sehingga setelah saya mendapatkan versi terbaru dari proyek tersebut, saya menjalankan aplikasi web saya dengan IIS EXPRESS, kemudian saya mendapat pesan ERR_CONNECTION_REFUSEDdi google chrome saya.

Setelah saya mencoba semua solusi yang saya temukan di internet, akhirnya saya menyelesaikan masalah dengan langkah-langkah ini:

  1. Tutup VS
  2. Hapus .vsfolder di folder proyekmasukkan deskripsi gambar di sini

  3. Jalankan Sebagai Administrator VS

  4. Buka Debug> Properti [Aplikasi Anda]> Web

  5. Ubah port di Project URL dan jangan lupa menggunakan https karena dalam kasus saya, saat saya menggunakannya httpmasih tidak berfungsi.

  6. Klik Create virtual directory

  7. Jalankan aplikasi lagi menggunakan IIS EXPRESS.

  8. Dan aplikasi web berjalan dengan sukses.

Semoga ini membantu.

Satria Janaka
sumber
1

Saya telah menyelesaikannya dengan membuka Project Properties -> Debug, setelah mengaktifkan SSL dan menggunakan alamat di browser Anda

masukkan deskripsi gambar di sini

DigaoParceiro
sumber
0

Rebuild All berhasil untuk saya. VS2013, IIS Express.

JohnWrensby
sumber
0

Pastikan Anda juga memiliki halaman awal yang ditentukan. Klik kanan pada halaman .aspx yang ingin Anda gunakan sebagai halaman awal dan pilih "Set as start page"

Glade Mellor
sumber
0

Solusi sederhana (ini berhasil untuk saya) adalah menggunakan alamat IP daripada localhost. Ini seharusnya bagus untuk tugas pengembangan Anda.

raj240
sumber
0

Saya mencoba banyak metode di Chrome tetapi satu-satunya yang berhasil untuk saya adalah "Hapus data penjelajahan"

Harus melakukan versi "lanjutan" karena standar tidak berfungsi. Saya menduga itu adalah "Pengaturan Konten" yang melakukannya.

GrowthCode
sumber
0

Saya baru-baru ini mengalami masalah ini ketika saya menyalin kode sumber dari komputer lain.

-> Hapus folder .vs (ini adalah folder tersembunyi, jadi pastikan Anda telah mengaktifkan opsi tampilan folder tersembunyi)
-> buka studio visual dan bangun proyek Anda. Visual studio akan membuat folder .vs baru sesuai konfigurasi sistem saat ini

Pengembang di mana-mana
sumber
0

Meskipun mungkin tidak terkait dengan masalah Anda, saya mengalami masalah yang sama hari ini. Ternyata, saya telah mengaktifkan modul Penulisan Ulang URL untuk memaksa situs saya menggunakan HTTPS alih-alih HTTP dan di lingkungan produksi saya, ini berfungsi dengan baik. Tetapi pada sistem pengembangan saya, yang dijalankan sebagai aplikasi dalam situs default saya, gagal ...
Ternyata, situs default saya tidak memiliki pengikatan untuk HTTPS sehingga modul penulisan ulang akan mengirim saya dari HTTP ke HTTPS, namun tidak ada yang mendengarkan port HTTPS ...
Ada kemungkinan Anda mengalami masalah ini karena alasan yang sama. Kesalahan ini tampaknya terjadi jika tidak ada pengikatan yang sesuai untuk situs yang Anda coba akses ...

Wim ten Brink
sumber
0

Ini mungkin relevan untuk subkumpulan orang tertentu dengan masalah ini ... mungkin dalam rasa yang berbeda.

Saya memaksa pengalihan https di RELEASE.

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
  filters.Add(new HandleErrorAttribute());
  #if !DEBUG
  filters.Add(new RequireHttpsAttribute());
  #endif    
}

Dan tidak ada https yang diaktifkan di iis express saya. Bekerja dengan benar di DEBUG

Mencubit
sumber
0

Saya hanya mencoba Mengikat IP dengan IIS tetapi akhirnya mengotak-atik file konfigurasi IIS.Saya benar-benar mencoba 20+ solusi untuk ini, yang mencakup

  1. penghapusan file .vs dari solusi proyek
  2. Penghapusan file konfigurasi folder IIS
  3. Penghapusan folder IIS
  4. Pembaruan VS2019
  5. Perbaikan VS2019
  6. Berkali-kali mesin dan VS restart
  7. berbagai perintah di CMS
  8. berbagai pembaruan perangkat lunak
  9. Berbagai port berubah

tapi apa yang berhasil yang mungkin berhasil untuk orang lain juga adalah untuk REPAIRIIS dari

Control Panel\Programs\Programs and Features

Lagi Anda bisa merujuk ke jawaban ini juga

Perbaikan IIS10

Bunglon
sumber
0

Pastikan Script Debugging dinonaktifkan

masukkan deskripsi gambar di sini

Saya mendapatkan ini sesekali meskipun telah mencoba beberapa saran di atas. Segera setelah saya menonaktifkan ini, proses debug situs saya bekerja seperti mimpi. (Pikir saya hanya menyalakannya secara tidak sengaja, atau mungkin di kehidupan sebelumnya).

hnodrog.dll
sumber
0

Jika Anda menggunakan IIS "nyata", ini dapat terjadi jika layanan W3SVC (World Wide Web Publishing) dihentikan.

Seharusnya tampak jelas tetapi jika Anda secara tidak sengaja menghentikan layanan atau menyetelnya ke manual, ini dapat terjadi pada Anda.

Saya tahu judulnya mengatakan IIS express namun google sepertinya tidak menyaring ekspres bahkan ketika menggunakan petunjuk -Express jadi mudah-mudahan ini membantu orang lain yang menemukan halaman ini daripada halaman khusus IIS.

Justin
sumber