ASP.NET 5 MVC: tidak dapat terhubung ke server web 'IIS Express'


190

Apa yang aku lakukan:

Menghapus applicationhost.config, terletak di Documents\IISExpress\config, tidak mengubah pesan kesalahan. (Ada juga IISExpressfolder di program filesdan program files (x86).)

Sesuatu yang saya perhatikan, dan saya tidak tahu apakah itu masalah:

File yang direferensikan 'lib / jquery-validation / jquery.validate.js' tidak ditemukan.

Saya mendapat dump dengan rawcap tetapi saya tidak melihat banyak di sana. Beberapa dari apa yang ada di sana:

"Framework": {"FrameworkName": "DNXCore, Version = v5.0", "FriendlyName": "DNX Core 5.0", "ShortName": "dnxcore50", "RedistListPath": null}

Saya tidak melihat masalah, tetapi saya memiliki data jaringan jika itu dapat membantu mencari tahu mengapa saya tidak dapat terhubung ke server web. Saya mendapatkan RST,ACKsegera jadi saya kira port ditutup dan apa pun server web ini, tidak sedang disiapkan.

Lebih lanjut tentang masalah ini: 800700c1 kesalahan dari / trace: error

Saya sudah mencoba:

  • menghapus applicationhost.config (dan mengubah nomor port)
  • menjalankan visual studio sebagai administrator
  • menghapus folder IISExpress di Dokumen (mengubah pesan kesalahan hingga folder diinstal ulang)
  • matikan dan matikan ssl, salin url ke kotak peluncuran. (catatan: Saya tidak menggunakan ssl)
  • menghapus semua kesalahan sfc / scannow
  • mulai iisexpress dengan versi x86 dan versi 64-bit


1
coba ketika Anda membuka visual studio klik kanan dan buka sebagai administrator ..
Hazem Torab

Saya mencoba semua saran yang orang berikan kepada saya walaupun saya sudah mencoba sebelumnya.
Sarek

dapatkah Anda membuka cek proyek baru jika ini berhasil? Mulai ulang PC? Pindahkan proyek ke direktori lain
Sebastian 506563

1
Terima kasih tetapi itu juga tidak berhasil.
Sarek

Jawaban:


254

Setelah menginstal Pembaruan 2 untuk Visual Studio 2015 saya mulai mendapatkan kesalahan yang sama. Saya mencoba semuanya di atas tanpa hasil. Namun, saya menemukan solusi yang berfungsi untuk saya:

  1. Hapus file YourSolutionFolder \ .vs \ config \ applicationhost.config (catatan: .vs adalah folder tersembunyi)
  2. Buka Visual Studio, klik kanan pada situs web> Properti> tab Debug> Pengaturan Server Web> URL Aplikasi - ubah nomor port.

Man, kesalahan saya kembali, menemukan ini juga di situs lain, tetapi itu terus memberikan kesalahan terkutuk. Membuatku jengkel. Saya telah menjalankan konsol web, tetapi itu tidak memiliki pengamat, sehingga saya bisa ctrl + s, segarkan.
René Sackers

Ya Tuhan, itu berhasil. Saya menghapus folder IISExpress di dokumen saya, lalu saya menghapus file itu, lalu saya mulai mendapatkan kesalahan ini, tetapi jawaban yang diterima adalah solusinya: stackoverflow.com/questions/33166403/… dan sekarang ini berfungsi: |
René Sackers

3
Bagi saya itu.vs\config\<MyProject>\config\applicationhost.config
laggingreflex

2
di mana Anda melihat web sitebahwa Anda perlu mengklik kanan?
CodyBugstein

14
Untuk proyek Net Core 2.2 - Setelah perjuangan BESAR dan mencoba segalanya dari menghapus folder .vs, menghapus konfigurasi IIS Express, mengubah nomor port, mengubah binding, dan menjalankan VS sebagai admin, AKHIRNYA saya memperbaiki masalah dengan 1. menutup VS, 2. menghapus launchSettings.json3. membuka VS yang dihasilkan ulang launchSettings.json. Tidak jelas bahwa file tersebut rusak atau salah atau bahkan ketika diubah menyebabkan kegagalan.
Quinton Smith

189

Keluar dari VS dan hapus file (project) .vs \ applicationhost.config. Mulai ulang VS. Seharusnya mulai bekerja.


19
Ini bekerja untuk saya di VS2017, tanpa harus mengubah port.
mlienau

4
Setelah melakukan ini untuk saya diperlukan menjalankan Visual Studio sebagai Administrator, dan bekerja, terima kasih!
DigaoParceiro

5
Terutama RUN AS ADMINISTRATOR penting bagi saya. (walaupun saya punya Asp.net Core 2.0 VS2017.
Bart Mensfort

1
Menghapus seluruh .vsfolder dan bekerja untuk saya, hanya itu
FindOutIslamNow

9
Restart VS2017 tidak memperbaiki tetapi me-restart komputer memperbaikinya untuk saya. Tidak perlu mengubah port atau menghapus folder. Semoga ini bisa membantu orang lain.
Tonmoy

32

Coba gunakan port lain. Saya baru saja menyiapkan proyek Core 1.0 RC1 baru dan mendapatkan kesalahan yang sama.

  • Klik kanan proyek web
  • Tab debug
  • Toggle Enable SSL off dan on lagi, itu harus menghasilkan port acak baru
  • Salin URL SSL dan rekatkan ke kotak Luncurkan URL
  • Jalankan proyek

Bekerja untuk saya (TM).

Jawaban dari: https://stackoverflow.com/a/28650554/134761

masukkan deskripsi gambar di sini


1
Ini bekerja tetapi hanya ketika saya menggunakan port 60000. port 6000 kembali kesalahan: port tidak aman.
EKanadily

Tidak berfungsi di Visual Studio 2019 - hanya menggunakan port yang sama setiap kali.
EJoshuaS

@ EJoshuaS-ReinstateMonica Saya percaya ini telah banyak berubah. Lihatlah bagaimana Startupkelas Anda dikonfigurasi dan appsettings.jsonfile apa yang Anda miliki. Ada juga Properties\launchSettings.jsonuntuk meluncurkan profil berbeda secara lokal. docs.microsoft.com/en-us/aspnet/core/fundamentals/… dejanstojanovic.net/aspnet/2018/december/…
angularsen

27

Saya menghadapi masalah ini di .net core 2.0 ketika saya memperbarui nomor port proyek saya.

Saya dapat memilah masalah dalam dua langkah:

  • LANGKAH 1: HAPUS folder .vs yang tersembunyi di dalam folder solusi utama. (tutup studio visual sebelum ini) kemudian ketika Anda memulai lagi studio visual, folder dan file ini (applicationhost.config) di dalamnya akan secara otomatis dibuat oleh studio visual.
  • LANGKAH 2: Untuk beberapa proyek startup , jika Anda masih menghadapi masalah maka satu per satu jalankan proyek sebagai startup, dan kemudian jalankan sebagai beberapa proyek startup.

Solusinya berhasil. Terima kasih :) Bagaimana dengan HAPUS juga folder .git?
krunal.cp

24

Saya mengalami masalah ini pada .net core 2.1, visual studio versi 15.9.6. Ketika saya menghapus folder .vs, saya membuka kembali studio visual dan masalahnya masih ada. Solusi yang bekerja untuk saya di bawah ini:

  1. Hapus folder .vs (ini adalah folder tersembunyi).
  2. Nyalakan kembali Komputer.

Solusi Lain:

  • Tutup Visual Studio, hapus folder dan folder obj dari folder proyek. Buka Project lalu bangun kembali solusi.
  • Coba jalankan Visual Studio sebagai Administrator.
  • Solusi Bersih kemudian membangun kembali
  • 1) Solusi Bersih. 2) Keluar dari Visual Studio. 3) hapus folder .vs 4) Buka kembali Visual Studio

Saya bisa melakukan ini dengan mematikan hanya Visual Studio, menghapus folder .vs, menyatakan Visual Studio lagi.
Robert Bratton

Ya itu bekerja untuk beberapa tidak dalam kasus saya. Tidak tahu mengapa itu tidak berhasil. Satu-satunya hal yang dilakukan adalah me-restart komputer saya.
Daniaal

2
Punya ini setelah bluescreen. Harus menghapus folder .vs dan restart komputer . Memulai ulang studio visual tidak cukup.
johnb

2
Langkah saya dikompres menjadi: 1) Bersihkan Solusi. 2) Keluar dari Visual Studio. 3) hapus folder .vs
samneric

1
@samneric Terima kasih untuk itu, saya akan menambahkan Anda solusi untuk jawabannya :)
Daniaal

13

Jalankan VisualStudio dengan hak administrator dan jalankan proyek. Kemudian tutup VisualStudio dan semua kesalahan dan jalankan VisualStudio lagi dengan pengguna normal.

Ini berhasil untuk saya.

Sepertinya IIS harus menulis sesuatu ke beberapa konfigurasi dengan hak admin (port 80 tidak bekerja dengan pengguna normal tetapi port 6767 bekerja dengan baik).


5
Hanya izin administrator yang memungkinkan aplikasi mengikat nomor port yang lebih kecil dari 1024. Itulah sebabnya 6767 bekerja untuk Anda.
Lex Li

12

Saya memiliki masalah yang sama, saya bisa menyelesaikannya dengan mengubah nomor Port.

  1. Klik kanan pada proyek dan pilih properti

  2. Pergi ke bagian Debug

  3. Di bawah Pengaturan Server Web ubah port URL Aplikasi [cukup tambah satu :)]

masukkan deskripsi gambar di sini


10

Dalam kasus saya itu adalah beberapa aplikasi lain yang mendengarkan pada port yang sama yang coba dilampirkan IIS Express. Saya harus menjalankan netstat -aountuk melihat PID proses yang menggunakan aplikasi port dan shutdown yang sama. Dalam aplikasi kasus saya adalah Viber.


10

Solusi yang berhasil bagi saya adalah: Tutup proyek VS Di File Explorer, navigasikan ke proyek dan hapus seluruh folder ".vs" Mulai ulang proyek Jalankan sebagai "Debug" Bekerja Tampaknya, ini ada hubungannya dengan "applicationhost" file .config ".

Nikmati!


10

Banyak dari jawaban ini tidak sepenuhnya mengatasi masalah yang dihadapi. Masalah sebenarnya bagi saya adalah bahwa saya memiliki dua binding menggunakan port yang sama dalam file applicationhost.config saya DAN saya belum membuka port untuk mengikat kedua (non localhost) saya . VS akan memungkinkan Anda untuk tetap berjalan dalam keadaan ini tetapi hanya jika Anda berada dalam mode admin (maka semua jawaban di atas).

Anda pada dasarnya membuat dua instance IIS express dari aplikasi Anda pada port yang sama, jadi mengubah salah satu port di file applicationhost.config Anda akan memungkinkan Anda untuk melanjutkan. Namun ada dua file applicationhost.config yang berbeda. Anda akan ingin memilih yang memiliki IP dan port yang mengikat yang Anda lihat di properti proyek Anda

masukkan deskripsi gambar di sini.

Buka folder tempat Anda dapat melihat solusi proyek dan folder proyek Anda (tunjukkan item tersembunyi di File Explorer). Arahkan ke folder .vs Anda yang tersembunyi -> folder "YourAppName" -> config. Itu harus berisi info mengikat yang Anda lihat di properti proyek Anda.

Contoh:

<bindings>
    <binding protocol="http" bindingInformation="*:7000:127.0.0.1" />
    <binding protocol="http" bindingInformation="*:7000:192.168.0.5" />
</bindings>

Ubah salah satu nomor port tersebut menjadi selain "7000" sehingga Anda tidak mencoba menggunakan port yang sama.

Dalam kasus saya, saya menggunakan alamat 192 yang bukan alamat localhost, jadi saya perlu menggunakan beberapa perintah netsh untuk membuka port itu dan melakukan ip up. Berikut ini adalah Tautan yang menunjukkan cara membuka port untuk IIS Express untuk memungkinkan koneksi jarak jauh. Berjalan sebagai pengguna normal tidak akan berfungsi kecuali jika Anda menjalankan perintah netsh yang terdaftar.

Berikut adalah perintah netsh:

  1. netsh http menambahkan urlacl url = http://192.168.1.42:58938/ user = semua orang
  2. firewall netsh advfirewall add name name = "IISExpressWeb" dir = dalam protokol = tcp localport = 58938 profil = remoteip pribadi = tindakan lokalubnet = memungkinkan

Salin perintah-perintah itu dan jalankan dalam cmd dengan hak istimewa ADMIN dan dengan alamat ip dan nomor port ANDA.


Ini solusi bagi saya, Terima kasih
WeisserHund

8

Saya baru saja mengubah profil saya dari "IIS Express" menjadi "MyProjectName" (yang saya pikir menggunakan kestrel sebagai server http alih-alih IIS) dan sekarang berfungsi dengan baik:

masukkan deskripsi gambar di sini


Ini bukan solusi, tetapi solusi. Jawaban Anda menyarankan menggunakan server yang berbeda - Kestrel - sementara OP jelas berusaha agar IIS-Express berfungsi.
Prolog

2
Setelah tiga hari mencabut rambut, solusi ini membantu saya. Terima kasih
Meir

7

UNTUK MEMPERJELAS

Benar-benar banyak jawaban di sini sama dan mengatakan sesuatu seperti "Mulai ulang dan ajaibnya berfungsi lagi".

Nah, 9 dari 10 kali orang memiliki masalah ini seperti OP itu karena THE IP-ALAMAT SUDAH DIGUNAKAN.

MENJAWAB

Mungkin ada 2 ip-address yang digunakan. Keduanya dapat Anda temukan dengan:

1) Mengklik kanan pada proyek start-up

2) Klik pada "Properties"

3) Klik pada tab "Debug"

Di sini Anda melihat "URL Aplikasi" dan "URL SSL" Anda.

  • Jika "URL Aplikasi" Anda digunakan, cukup ubah di sana dan simpan dan itu akan berfungsi lagi.

  • Jika "URL SSL" Anda digunakan, tutup VS, hapus file "applicationhost.config" di folder .vs tersembunyi proyek Anda dan buka VS lagi.


6

Saya dapat beralih kesalahan ini dengan mengubah satu hal. Dalam launchSettings.jsonfile proyek Aplikasi Web ASP.Net Core 1.0 RC2 saya :

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "https://localhost:18177/",
      "sslPort": 0
    }
  },

untuk

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:18177/",
      "sslPort": 0
    }
  },

Saya telah berubah menjadi https dalam upaya menjalankan proyek menggunakan protokol itu. Rupanya ini bukan tempat untuk melakukan perubahan itu. Saya menduga itu membuat beberapa binding pada port yang sama, dan IIS Express tidak suka itu.


Saya harus melakukan ini untuk menambah nomor port. posting asli saya 'macet' dan saya tidak punya waktu sekarang untuk reboot atau mencari cara memperbaikinya
Simon_Weaver

6

Saya memiliki masalah yang sama, tetapi cara saya memperbaikinya adalah dengan membuka applicationhost.config dan menghapus port yang tidak ditambahkan oleh saya (IIS Express, saya kira) yang menempatkan situs port spesifik saya di port lain.

Inilah yang dimiliki file konfigurasi untuk binding saya:

<bindings>
      <binding protocol="http" bindingInformation="*:54764:localhost" />
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

Saya menghapus item binding pertama karena satu-satunya port yang saya inginkan adalah 44360. File konfigurasi saya sekarang terlihat seperti ini:

<bindings>
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

Sekarang saya tidak melihat kesalahan ketika saya debug.

Saya juga memperhatikan API kedua saya di proyek saya memiliki port 80 juga ditugaskan untuk itu, saya menghapusnya juga.


5

hapus folder dan folder obj dari folder proyek dan bangun kembali.


Meskipun pembersihan manual sering kali memang membantu, itu tidak akan menyelesaikan masalah dalam kasus ini karena masalahnya ada di file applicationhost.config dan kemungkinan besar disebabkan oleh mencoba menggunakan alamat ip yang sama dua kali
MedievalCoder

5

Saya baru saja membersihkan solusi saya, kemudian membangun kembali dan akhirnya menekan F5 dan berhasil! Sangat sederhana.


4

Saya tidak akan berpura-pura memahami sepenuhnya apa yang menyebabkan masalah MS bug ini, tapi di sini ada solusi potensial:

Dalam file .vs / config / applicationHost.config, cari bagian untuk <system.applicationHost><applicationPools>. Di bawah kumpulan, pastikan bahwa nilai managedRuntimeVersionatribut cocok dengan nilai yang ada di konfigurasi IIS untuk sistem (dan / atau versi .NET framework yang diinstal).

Misalnya, Anda mungkin menemukan (seperti yang saya lakukan) bahwa file yang dihasilkan memiliki:

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

Dalam kasus saya, Anda akan menggantinya dengan:

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0.30319" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

Perhatikan penggantian dari "v4.0" ke "v4.0.30319". Ini menyelesaikan masalah.


Apa yang tampaknya terjadi:

Saya percaya bahwa VS menghasilkan file applicationHost.config dengan versi "default" untuk .NET framework, yang mungkin tidak cocok dengan versi spesifik yang diinstal / dikonfigurasi pada sistem. Anda dapat men-debug / mengamati masalah ini dengan melacak eksekusi di Process Monitor, dan menemukan baris perintah untuk iisexpress.exe. Menjalankan perintah ini dengan /trace:errormenambahkan menghasilkan pesan yang lebih informatif tentang kegagalan untuk memuat CLR dengan versi v4.0. Yakni:

Memulai IIS Express ...
Gagal saat mencoba memuat versi CLR v4.0. jam = 80131700
Gagal untuk memulai W3WP_HOST jam = 80131700
Proses Model Shutdown disebut
Tidak dapat memulai iisexpress.


Ngomong-ngomong, saya pikir ini mungkin bermanfaat bagi orang lain, karena cukup umum untuk memiliki beberapa referensi online dengan informasi yang buruk, dan saya pribadi telah memukulnya beberapa kali sekarang.


Tidak ada solusi yang bekerja untuk saya, Jika Anda telah menginstal Windows IIS default (yang datang dengan windows Anda) dan memiliki akses ke sana, cobalah untuk menggunakannya, yang menyelesaikan masalah saya, cukup Tambahkan situs web baru atau aplikasi baru di sana dan selesai, Lagi pula, aneh bahwa IIS Express tidak dapat membuka halaman. Jika Anda perlu melacaknya, cukup lampirkan pada proses menggunakan ctrl + alt + ptombol pendek dan centang Show process for all usersdan pilih w3wp.exe(kadang-kadang perlu menyegarkan situs web untuk menemukan w3wp.exe) dan kemudian tekan Attachtombol.
Mohammad Musavi

3

Coba ini dulu jika berhasil dan tiba-tiba berhenti:

  • Tutup Visual Studio
  • Matikan proses iisexpress.exe
  • Buka kembali Visual Studio

3

Milik saya terjadi segera setelah saya menambahkan ikatan baru di dalam applicationhost.config, berjalan saat administrator memperbaiki masalah.


3

Tutup saja studio visual dan buka kembali dan jalankan. Ini berhasil untuk saya.


3

Bagi saya masalahnya adalah proses lain menggunakan port yang sama. (Dalam kasus saya, prospek yang menggunakan port yang sama dengan situs saya dan karenanya situs saya tidak dapat memulai)

Ya, Anda dapat mengubah port lokal, tetapi jika Anda menjalankan API atau sesuatu yang dibutuhkan aplikasi lain, Anda tidak selalu ingin melakukan ini.

Untuk mendapatkan daftar aplikasi apa yang menggunakan port apa yang membuka CMD dan ketik "netstat -aon" Anda akan mendapatkan daftar port. Temukan port yang harus digunakan situs Anda, atau yang ingin Anda gunakan dan tulis / ingat PID.

Sekarang buka task manager dan klik pada tab 'details'. Temukan proses dengan PID Anda dan akhiri. Sekarang Anda harus dapat memulai IIS Express dengan port itu.


3

Saya dapat menyelesaikan ini dengan me-restart komputer saya. Saya mencoba beberapa hal tanpa hasil dan akhirnya menyerah dan menyalakan kembali komputer saya. Ini telah berfungsi dengan baik sekarang selama beberapa hari setelah saya memulai kembali. Mungkin hasil dari beberapa proses yang digantung.


3

Bagi saya, itu adalah campuran dari mengikuti instruksi ini :

Hapus .vs \ applicationhost.config aplikasi web Anda dan coba lagi.

Dan kemudian, mungkin yang paling penting, menjalankan Visual Studio dengan hak istimewa admin.


3

Saya menambahkan .UseUrls("https://localhost:<some port>/")ke Program.cs. Ini sepertinya membantu saya!


2

Saya hanya beralih di "Aktifkan SSL". Ini menyelesaikan masalah saya.

  1. Klik kanan proyek web
  2. Tab debug
  3. Toggle Enable SSL "on" (jika tidak aktif, yang merupakan kasus saya)

2

Saya baru saja mengalami masalah yang sama dan saya membunuh semua proses "iisexpress.exe" yang masih berjalan. Itu berhasil bagi saya!


2

Solusi saya (untuk .net core 2.0) adalah saya lupa menambahkan nomor port di applicationUrl, di bawah iisExpress di launchSettings.json

"iisExpress": {
  "applicationUrl": "https://localhost:50770",
  "sslPort": 50770
}

Ketika launchSettings.jsonsecara otomatis dihasilkan atau diperbarui oleh VS, applicationUrlseharusnya ada /pada akhirnya. Info lebih lanjut dapat ditemukan di blog.lextudio.com/...
Lex Li

2

Masalahnya mungkin karena [√] Enabled SSLdipilih untuk proyek Anda (lihat Debugtab di jendela pengaturan proyek), tetapi Visual Studio memutuskan untuk menjadi bodoh dan mengatur sesuatu seperti http://localhost:32396. Alasan kegagalan adalah karena 1. tidak HTTPS, dan 2. sertifikat tidak valid. Untuk memaksanya, Anda perlu menggunakan port di kisaran 44300-44398.

Lihat https://stackoverflow.com/a/24957146/1236397



1

Coba dalam cmd

taskkill /im iisexpress.exe /f
taskkill /im dotnet.exe /f

dan tekan f5. Saya tidak mengubah port, menghapus file atau reboot VS.


Mungkin bisa menjelaskan Anda menjawab sedikit. Hanya membunuh prosesnya mungkin bukan jawaban di sini. Dan bagaimana setelahnya?
Shiham
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.