Proyek Aplikasi Web [...] dikonfigurasi untuk menggunakan IIS. Server Web [...] tidak dapat ditemukan.

285

Saya memiliki proyek web di file solusi saya yang "tidak tersedia" ketika saya membuka solusi. Ketika saya mengklik kanan pada proyek web dan memuat ulang proyek, saya mendapatkan kesalahan berikut:

The Web Application Project mycompany.myapp.mywebproject is configured to use IIS. The Web Server 'http://localhost/MyWebApp could not be found.

Saya belum secara manual mengatur direktori virtual untuk aplikasi web ini.

Per rekan, Visual Studio harus meminta saya untuk membuat direktori virtual tetapi saya tidak diminta.

Saya menginstal VS2010 sebelum menginstal IIS pada mesin dev saya.

Ini adalah pengaturan mesin pengembangan saya:

  • Windows 7 Enterprise
  • Paket Layanan 1
  • OS 64 bit
  • Visual Studio 2010 Paket Layanan Perusahaan 1
  • IIS versi 7.5
dotnet-praktisi
sumber

Jawaban:

87

Ketika ini terjadi, solusi termudah adalah membuat direktori virtual secara manual.

Pertama-tama, Anda perlu memastikan bahwa Anda memiliki versi ASP.Net yang tepat dan bahwa Anda telah menginstal ekstensi IIS.

Untuk melakukannya, buka folder .net versi yang relevan di C: \ (Windows) \ Microsoft.NET \ Framework \ (dotnetver) \ (mengganti folder yang diberi tanda kurung untuk folder yang tepat di PC Anda) dan jalankan perintah ini

aspnet_regiis.exe -i

Selanjutnya setelah itu dijalankan dan selesai, kadang-kadang berjalan

iisreset

dari baris perintah membantu, kadang-kadang Anda tidak perlu.

Selanjutnya, buka IIS Manager Anda dan temukan situs web localhost Anda dan pilih tambah folder. Telusuri ke folder di proyek Anda yang berisi proyek ASP.Net yang sebenarnya dan tambahkan itu.

Akhirnya, klik kanan pada folder yang Anda tambahkan dan Anda harus memiliki opsi yang mengatakan 'convert to application' atau 'create virtual direktori' atau yang serupa.

!! Pastikan direktori Virtual memiliki nama 'MyWebApp' !!

Muat ulang solusi Anda dan itu akan berfungsi.

Harap waspada; ini bukan pertanyaan pemrograman (dan seharusnya tidak diposting di sini) tetapi saya telah memposting panduan ini karena ini adalah masalah umum, tetapi saran yang saya posting bersifat umum; perintah yang saya daftarkan sudah benar tetapi langkah-langkah yang perlu Anda lakukan di IIS dapat bervariasi, tergantung pada versi Anda dan hak istimewa akun Anda.

Semoga berhasil!

Russ Clarke
sumber
Saya mengikuti petunjuk dan mendapatkan kesalahan berikut .. Saya menghapus direktori virtual saya karena kesalahan ini untuk memulai. Tidak dapat menambahkan entri kumpulan duplikat dari tipe 'tambah' dengan atribut kunci unik 'nama' disetel ke 'Telerik_Web_UI_WebResource_axd'
dotnet-praktisi
Apa yang menyebabkan kesalahan itu, IIS atau Visual Studio ketika Anda memulai solusi?
Russ Clarke
Juga, periksa web.config untuk proyek asp.net baru Anda, itu membuat memiliki dua atau lebih referensi ke 'Telerik.WebResource.axd' hanya perlu satu.
Russ Clarke
Saya telah memeriksa web.config .. ketika saya menghapus entri yang menyinggung maka saya mendapatkan pesan kesalahan bahwa entri yang dihapus diperlukan.
dotnet-praktisi
akan memposting pertanyaan terpisah sesaat untuk pesan kesalahan baru
dotnet-praktisi
523

Karena jawaban yang diterima memerlukan IIS Manager, dan IIS Express tidak memiliki IIS Manager atau UI apa pun, berikut ini solusinya bagi Anda pengguna IIS Express (dan juga harus bekerja untuk orang lain):

Ketika Anda membuka Visual Studio dan mendapatkan pesan galat, klik kanan proyek Solution Explorer dan pilih "Edit {ProjectName} .csproj"

Di file proyek, ubah baris berikut:
<UseIIS>True</UseIIS>
untuk
<UseIIS>False</UseIIS>
Menyimpan file.

Sekarang muat ulang proyek Anda.
Selesai

Anda kemudian dapat membuka proyek Anda. Jika pada titik ini, Anda ingin menggunakan IIS, cukup buka properti proyek Anda, klik tab "Web", dan pilih opsi untuk menggunakan IIS. Ada tombol di sana untuk "Buat Direktori Virtual". Mungkin memberitahu Anda bahwa Anda perlu menjalankan Visual Studio sebagai administrator untuk membuat direktori itu, jadi lakukan itu jika diperlukan.

Doug S
sumber
33
dalam VS2010 UseIIS bukan dalam file csproj, tetapi dalam file
.csproj.user
2
Dalam kasus saya, saya masih ingin menggunakan IIS jadi saya hanya mengubah URL, bekerja dengan sempurna terima kasih.
kjetilh
Saya mendapatkan masalah ini saat meningkatkan & memindahkan. Ini bekerja untuk saya walaupun karena solusi tidak memuat saya baru saja membuka csproj di editor teks. Terima kasih, Doug.
Kieran
2
Ini jawaban yang benar. Proyek ini dikonfigurasi untuk menggunakan IIS dan IISExpress secara bersamaan.
Aaron Reed
2
Menggunakan VS2013, saya tidak melihat Edit {ProjectName} .csproj ketika mengklik kanan solusinya. Saya menyelesaikan pengeditan dengan pergi ke sistem file dan secara manual mengedit file .csproj. Itu hanya baca, jadi saya harus menari sedikit, tetapi itu berhasil.
Al Lelopath
222

Buka folder proyek dan hapus {Project} .csproj.user , lalu muat ulang proyek di Visual Studio.

qjuanp
sumber
2
Saya adalah satu-satunya di antara tim kami yang melihat kesalahan IIS ini. Tim dev tempat saya bekerja memiliki file .csproj yang sama dari kontrol sumber sehingga solusi lain di atas bukanlah masalah saya. Ternyata file .csproj.user yang Anda sebutkan menyebabkan kesalahan ini dalam situasi saya. Terima kasih!
My Stack Overfloweth
3
Ini berhasil bagi saya setelah mencoba hampir semua hal lain
David
3
Ini jawaban yang benar. Ini menyelesaikan masalah dengan konfigurasi proyek pada mesin Anda (terutama penting ketika bekerja dengan TFS).
Markus
1
Ini juga solusi jika Anda telah menetapkan tag iisurl khusus tetapi proyek masih dimulai pada host lokal <IISUrl> MachineName.domain: 12345 / </ IISUrl >
lsp
5
Yang ini berhasil untuk saya. Tidak ada pengaturan <UseIIS> dalam kasus saya.
Techgration
33

Solusi ini berhasil bagi saya: Klik kanan Proyek dan pilih edit dan temukan kode berikut seperti yang ditunjukkan di bawah ini dalam gambar.

change the <UseIIS>True</UseIIS> to <UseIIS>False</UseIIS>

ATAU

change the <IISUrl>http://example.com/</IISUrl> to <IISUrl>http://localhost/</IISUrl>

tangkapan layar csproj

Umar Abbas
sumber
30

bagi saya, saya harus menghapus dua baris ini dari file .csproj

<ProjectGuid>{3AA499DF-4A65-43B7-8965-D08A4C811834}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

Saya mencoba menghapus hanya yang pertama, tetapi itu tidak cukup.

EDIT: Seperti yang ditunjukkan oleh banyak pengguna, ini dapat mengubah jenis proyek Anda atau mengacaukan program kendali sumber Anda. Saya tidak dapat menyelidiki masalah ini karena itu adalah proyek sekolah yang tidak saya miliki lagi. Harap berhati-hati saat mencoba ini. Setidaknya buat salinan dari apa yang Anda hapus.

kisslory
sumber
9
Yang ini berhasil dan yang ini harus ditandai sebagai jawaban. Saya mencoba banyak solusi seperti yang disarankan dalam SO tetapi tidak ada yang berhasil untuk saya kecuali yang ini.
Bose_geek
3
Setelah mencoba semua saran di atas, inilah yang benar-benar bekerja untuk saya. Terima kasih teman saya!
Noble-Savage
2
Ini berubah menjadi tipe proyek jadi ini bukan aplikasi web lagi.
Oram
3
Bukan ide yang baik untuk menghapus <ProjectGuid> dari file .csproj. Untuk memuat proyek itu cukup dengan hanya menghapus <ProjectTypeGuids> yang juga merupakan ide buruk karena mengubah jenis proyek, seperti yang disebutkan @Oram. Jawaban ini bagus jika Anda tidak ingin melakukan perubahan, lihat saja kode di VS.
elshev
1
Ini menyelesaikan kesalahan beban explorer solusi yang saya temui dengan kontraktor mengembangkan solusi Visual Studio 2010 yang saya pindah ke 2013. File solusi memiliki 2 proyek; aplikasi web dan layanan web. Saya tidak dapat memuat, jadi Solution Explorer hanya menampilkan dua folder kosong setelah saya mencoba membuka file solusi. Setelah saya mengomentari baris ProjectGuid dan ProjectTypeGuids yang disarankan, maka saya bisa melihat dependensi dari proyek ini di Solution Explorer. Bagi saya, ini adalah opsi pengembalian tinggi risiko rendah karena saya dapat dengan mudah membatalkan perubahan ini. Terima kasih!
JohnH
26

Edit file .csproj atau vbproj. Temukan dan ganti entri ini

<UseIIS>true</UseIIS> by <UseIIS>false</UseIIS>
<UseIISExpress>true</UseIISExpress> by <UseIISExpress>false</UseIISExpress>
jcmordan
sumber
1
Saya juga harus mengubah DevelopmentServerPort ke nilai selain 80.
JoshNaro
1
Dan jika Anda tidak dapat menemukan pengaturan di file csproj. Buka file .csproj.user dan lakukan di sana.
devzero
10

Dalam kasus saya, masalah ini disebabkan oleh ikatan IIS yang rusak. Khususnya, ikatan 'http' saya telah dihapus. Rekreasi itu memperbaiki masalah.

Roger Lipscombe
sumber
Saya mengalami masalah yang sangat mirip. Ikatan HTTP saya sepertinya mengganti nama sendiri suatu hari -_- Pengaturan file proyek untuk <IISUrl>tidak berubah (terima kasih SVN untuk mengonfirmasi memori dan kewarasan saya) tetapi entah bagaimana pengikatan iis itu. Memperbaikinya dan yang diproyeksikan dimuat segera.
Patrick M
Juga, ingatlah untuk memeriksa apakah Anda telah mengubah nama situs / nama inang untuk beberapa alasan. Ini menyebabkan kesalahan dalam kasus saya.
juarola
5

Coba buka Visual Studio dengan hak istimewa Administrator. Dalam kasus saya, itu memberi akses ke situs IIS dan membuat kesalahan ini hilang. Saya kemudian dapat beralih proyek untuk menggunakan IIS Express yang tampaknya tidak memerlukan hak administrator.

kad81
sumber
5

Ini berfungsi untuk saya: -
Jadikan semua situs web IIS Anda mengarah ke localhost (Semua Tidak Ditugaskan) saja

masukkan deskripsi gambar di sini

JerryGoyal
sumber
5

Jika Anda terhubung melalui TFS, buka file project.csproj.user Anda dan periksa

<UseIISExpress>false</UseIISExpress>

dan mengubahnya menjadi true.

<UseIISExpress>true</UseIISExpress>
Patrick Dengler
sumber
Meskipun saya merasa ini lebih merupakan solusi untuk masalah daripada solusi yang sebenarnya, berikan acungan jempol saat menyelesaikan masalah langsung saya.
Nandun
Bekerja dengan baik :)
Hammad Sajid
4

Anda dapat memuat proyek tanpa menetapkan nilai atribut UseIIS ke true. Cukup ikuti langkah-langkah di bawah ini:

Dalam file mywebproject.csproj -

Hapus tag <IISUrl> http: // localhost / MyWebApp / </ IISUrl> dan simpan file. Aplikasi akan secara otomatis menetapkan port default untuknya.

Yogesh Gangwar
sumber
4

Anda tidak akan percaya itu, startvisual studio sebagai Administrator

jelas dari pesan

Server Web ' http: // localhost / MyWebApp ' tidak dapat ditemukan.

tidak dapat ditemukan karena mungkin it has no privileges to see it

jadi hanya restartvisual studio sebagai Administrator

Basheer AL-MOMANI
sumber
3

Dalam kasus saya, saya ingin beralih dari http ke https, jadi saya telah menghapus http dari IIS. Dalam file .csproj.user saya menemukan bahwa saya masih memiliki:

<IISUrl>http://localhost/</IISUrl>

Jadi saya mengubahnya menjadi:

<IISUrl>https://localhost/</IISUrl>
Njaal Gjerde
sumber
2

Dalam kasus saya, saya dapat membuka solusi dalam mode offline hanya menjalankan perintah:

iisreset
Conrado Fonseca
sumber
2

Untuk Anda pengguna Win8 di luar sana, jika Anda mengikuti langkah-langkah dalam jawaban yang diterima, konsol memuntahkan pesan pada Anda mengatakan "Anda tidak akan menggunakan baris perintah untuk mengeksekusi perintah ini" (parafrase). Sebagai gantinya, akses Program & Fitur melalui Control Panel (atau Windows + R> appwiz.cpl), klik 'Hidupkan atau matikan fitur Windows', dan pastikan Anda telah menginstal yang berikut ini:

Internet Information Services
  > World Wide Web Services
    > Application Development Features
      > ASP.NET 4.5

Ini akan memeriksa banyak opsi lain juga. Segera setelah saya menginstal fitur-fitur ini, dan menjalankan VS2012 dengan izin tinggi, saya berhasil meluncurkan aplikasi saya.

Scott Silvi
sumber
2

Ini terjadi pada saya ketika saya mencoba untuk membuka proyek dari file .csproj, tetapi saya mengatasinya dengan membuka proyek dari VS:

File> Buka> Situs Web

dan pilih direktori yang termasuk proyek saya.

mshwf
sumber
1

Saya memiliki kesalahan ini juga. Saya pikir semuanya sudah diatur dengan benar, tetapi saya menemukan bahwa ada satu hal yang hilang: Nama host yang saya gunakan untuk proyek saya belum (belum) dapat diselesaikan.

Karena aplikasi saya menentukan nama klien saat ini dari nama host saya menggunakan nama host seperti clientname.mysuperapp.localuntuk pengembangan. Ketika saya menambahkan nama host pengembangan ke hostsfile saya , proyek itu dapat dimuat kembali. Jelas, saya harus melakukan ini, tetapi saya belum berpikir bahwa VS memeriksa nama host sebelum memuat proyek.

fero
sumber
1

Periksa apakah IIS Express diinstal. Jika IIS Express tidak ada, Visual Studio mungkin membuang pengaturan <UseIISExpress>false</UseIISExpress>dan masih mencari ekspres.

Sebuah
sumber
1

dalam kasus saya, pastikan Anda memiliki situs web "Default"

menggambar
sumber
1

Dalam kasus saya, "Situs Web Default" di IIS tidak memiliki ikatan untuk localhost pada port 80. Anda harus memiliki ikatan untuk apa pun nilai Anda dalam file .csproj.

Dan Mirescu
sumber
1

Saya memperbaikinya hanya dengan menginstal ulang IIS Express setelah mengunduh dari tautan di bawah ini:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=48264

Matius
sumber
1
Ini tidak memberikan jawaban untuk pertanyaan itu. Setelah Anda memiliki reputasi yang cukup, Anda akan dapat mengomentari setiap pos ; alih-alih, berikan jawaban yang tidak memerlukan klarifikasi dari penanya . - Dari Ulasan
FluffyKitten
@FluffyKitten Saya memiliki kesalahan yang sama dengan OP, saya mencoba semua jawaban lain dan tidak ada yang berhasil menginstal ulang IIS Express. Jadi saya percaya ini adalah jawaban saya untuk pertanyaan OP. Instal ulang IIS.
Matius
Jawaban Anda ditandai dengan kualitas rendah dan sedang melalui proses peninjauan (catat "Dari Ulasan" di akhir komentar). Meskipun mungkin berhasil, menginstal ulang perangkat lunak adalah pilihan terakhir ketika tidak ada yang lain yang berfungsi dan bukan solusi spesifik untuk masalah OP ini.
FluffyKitten
Jika ini merupakan pilihan terakhir setelah tidak ada lagi yang berhasil — dan menurut Ajay2707 ada potensi untuk tidak ada jawaban lain yang bekerja untuk orang miskin — maka saya akan berpikir jawaban ini bisa berguna. Bagaimana Anda dapat menetapkan jawaban dengan kualitas rendah padahal itu mungkin satu-satunya yang berfungsi untuk beberapa orang? Saya mendukung Anda Ajay2707. Terima kasih telah meluangkan waktu untuk berkontribusi pada komunitas.
nardnob
Inb4 percakapan ini dipindahkan / dihapus karena kualitasnya rendah. viva la resistance !!
nardnob
0

Dalam kasus saya, url yang dirujuk dalam csproj file salah.

Itu perlu diawali dengan www.

Saya membuat perubahan, menyimpan file dan proyek dimuat dengan baik.

Patrick Fischer
sumber
0

Saya mengalami masalah ini ketika <ProjectTypeGuids>elemen dalam file .csproj berisi GUID proyek uji unit:{3AC096D0-A1C2-E12C-1390-A8335801FDAB} .

Menghapusnya membuat beban proyek tanpa masalah.

MvdD
sumber
0

Untuk pengguna DNN masalah saya adalah saya membutuhkan pengikatan untuk dnndev.me di port 80. Saya memiliki beberapa instalasi yang berjalan pada port yang berbeda dan VS mengharuskan agar Url tertentu ada di port 80 (bukan 86 seperti milik saya).

Mickers
sumber