IIS Express memberikan kesalahan Access Denied saat debugging ASP.NET MVC

102

Saya telah membuat proyek ASP.NET MVC 3, dan saya menggunakan IIS Express sebagai server web saat mengembangkan. Ketika saya mencoba men-debug, saya mendapatkan pesan kesalahan di bawah ini.

Bagaimana ini bisa diselesaikan?

Kesalahan Server di Aplikasi '/'.

Akses ditolak. Deskripsi: Terjadi kesalahan saat mengakses sumber daya yang diperlukan untuk melayani permintaan ini. Server mungkin tidak dikonfigurasi untuk mengakses URL yang diminta.

Pesan kesalahan 401.2 .: Tidak diotorisasi: Logon gagal karena konfigurasi server. Pastikan Anda memiliki izin untuk melihat direktori atau halaman ini berdasarkan kredensial yang Anda berikan dan metode otentikasi yang diaktifkan di server Web. Hubungi administrator server Web untuk bantuan tambahan.

Kris-I
sumber
3
apakah Anda menjalankan IISExpress tanpa Hak Istimewa administratif?
Chandmk
2
Jadi setelah membenturkan kepala saya pada ini untuk beberapa saat saya akhirnya menyadari itu karena VS belum menetapkan halaman default dan tampaknya IISExpress.exe tidak memberikan daftar folder untuk membuatnya jelas.
Mark Allen

Jawaban:

113

Jika Anda menggunakan Visual Studio, Anda juga dapat mengklik kiri pada proyek di Solution Explorer dan mengubah properti Windows Authentication ke Enabled di jendela Properties .

Jason
sumber
2
Ini tidak spesifik untuk Visual Studio 2012, itu dapat dibuat setidaknya di Visual Studio 2010 juga.
Loïc Lopes
5
Bekerja untuk saya di VS 2013.
kaybee99
2
Anda juga perlu menonaktifkan otentikasi Anonim.
Mengkilap
1
Di explorer solusi, klik nama proyek di bawah node solusi, lalu beralih ke jendela Properties, di sana Anda dapat melihat properti Windows Authentication atur ke Enabled
sairfan
1
Saya tidak melihat pengaturan ini di mana pun di jendela properti. Saya menggunakan VS 2015.
Mark Bonafe
99

Penyebab jika memiliki masalah ini adalah IIS Express tidak mengizinkan WindowsAuthentication. Ini dapat diaktifkan dengan pengaturan

<windowsAuthentication enabled="true">

di file applicationhost.config yang terletak di C: \ Users [username] \ Documents \ IISExpress \ config.

Ant Swift
sumber
19
Visual Studio 2010 dan 2012 dapat menambahkan pengaturan ini untuk Anda, per proyek, sehingga pengaturan global tidak berubah dari asali, lihat stackoverflow.com/a/7168308/23566
Robert Claypool
Saya mencoba pengaturan itu, karena saya juga mendapatkan kesalahan ini di VS 2013 secara sporiadis, mari kita lihat apakah itu membantu, saya akan memberi tahu Anda.
Matt
2
Lebih baik jika Anda menggunakan% userprofile% \ documents \ iisexpress \ config \ applicationhost.config. Punyaku ada di D: (terima kasih Dan! Danesparza.net/2014/09/… )
Jeramy Rutley
Ini adalah satu-satunya solusi yang berhasil untuk saya, terima kasih banyak!
Mohammad Anini
Mencoba ini di VS 2017 dan tidak berhasil. Solusi yang diposting oleh Jason berhasil.
myroslav
73

Saya menggunakan jawaban Jason tetapi ingin menjelaskan cara masuk ke properti.

  1. Pilih proyek di Solution Explorer

masukkan deskripsi gambar di sini

  1. F4 untuk masuk ke properti (berbeda dari properti klik kanan)
  2. Ubah Otentikasi Windows menjadi Diaktifkan

masukkan deskripsi gambar di sini

Tony L.
sumber
3
Terima kasih banyak untuk mengeja ini dan menentukan bahwa properti F4lah yang perlu diubah.
PeterDNCO
1
Terima kasih! Saya juga harus menyetel 'Anonymous Authentication' ke 'Enabled'.
Mahesh
1
Terima kasih banyak juga!
FunMatters
1
Kamu cantik.
kosherjellyfish
1
Saya menggunakan VS 2015, ini tidak ada!
Mark Bonafe
18

Hosting di IIS Express: 1. Klik proyek Anda di Solution Explorer untuk memilih proyek. 2. Jika panel Properties tidak terbuka, buka (F4). 3. Pada panel Properties untuk proyek Anda: a) Setel "Anonymous Authentication" ke "Disabled". b) Setel "Otentikasi Windows" ke "Diaktifkan".

Daniel
sumber
12

Dalam kasus saya, saya harus membuka file:

C:\...\Documents\IISExpress\config\applicationhost.config

Saya punya ini di dalam file:

  <authentication>
  <anonymousAuthentication enabled="true" User="" />

Saya baru saja menghapus User=""bagian itu. Saya benar-benar tidak tahu bagaimana benda ini sampai di sana ... :)

Catatan: Pastikan Anda memiliki sesuatu seperti ini di akhir applicationhost.config:

   .
   .
   .
   <location path="MyCompany.MyProjectName.Web">
        <system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="true" />
                    <windowsAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>

Anda mungkin juga ingin melihat di sini: https://stackoverflow.com/a/10041779/114029

Sekarang saya dapat mengakses halaman login seperti yang diharapkan.

Leniel Maccaferri
sumber
1
Saya mengikuti langkah Anda masih tidak berhasil untuk saya. Jika dibuka dari vs2010 berfungsi dengan baik, apa masalah di vs 2013
GANI
@ user1016740 Saya tidak yakin karena ada banyak kemungkinan / jalur yang harus diikuti untuk mencoba memecahkan masalah ini. Langkah-langkah yang saya jelaskan di sini menyelesaikannya di lingkungan saya yang menurut saya berbeda dari lingkungan Anda.
Leniel Maccaferri
8

Dalam kasus saya, menjalankan aplikasi saya sebelumnya dari VS memesan URL. Saya bisa melihat ini dengan menjalankan di konsol:

netsh http show urlacl

untuk menghapus reservasi ini saya menjalankan ini di konsol yang ditinggikan :

netsh http delete urlacl http://127.0.0.1:10002/

Saya menemukan langkah-langkah ini di sini memecahkan masalah saya.

Saya menggunakan VS2013

BillDarcy
sumber
Ini sangat berguna jika Anda pernah mengedit applicationhost.config Anda untuk menjalankan situs di beberapa port sekaligus. Menghapus entri dari .config tidak menghapus reservasi apa pun di netsh. Terima kasih sobat.
Dusda
5

Saya harus menjalankan Visual Studio Administrative Modeuntuk menghilangkan kesalahan ini.

Serj Sagan
sumber
3

Saya juga punya masalah yang sama dan akhirnya saya bisa mengatasinya.

Solution ExplorerRight click on projectPropertiesWeb tabProject Url

Saya telah memilih nomor port lain , dan semuanya menjadi baik-baik saja!

frogatto.dll
sumber
1

Tak satu pun di atas berhasil untuk saya. Ini telah bekerja untuk saya sebelum hari ini. Saya kemudian menyadari bahwa saya telah bekerja dengan membuat koneksi yang dihosting di laptop saya dan telah Berbagi koneksi internet dengan Koneksi Jaringan Nirkabel saya.

Untuk memperbaiki masalah saya:

Buka Panel Kontrol> Jaringan dan Internet> Sambungan Jaringan

Klik kanan pada Sambungan Jaringan Nirkabel sekunder yang mungkin Anda miliki (milik saya bernama Sambungan Jaringan Nirkabel 2) dan klik 'Properti'.

Buka tab 'Berbagi' di bagian atas.

Hapus centang pada kotak yang menyatakan 'Izinkan pengguna jaringan lain untuk terhubung melalui koneksi Internet komputer ini'.

Tekan OK> lalu Terapkan.

Semoga ini membantu!

Ryan C.
sumber
1

Saya membuka file web.config saya, dan menemukan serta menghapus bagian ini:

<authorization>
  <deny users="?" />
</authorization>

dan situs saya muncul, tetapi ada masalah dengan autentikasi ..

kfn
sumber
Oke, Ini membantu menyelesaikan masalah tetapi sekarang saya memiliki beberapa masalah lain yang perlu saya perbaiki.
Jamshaid Kamran
0

Saya baru saja memperbaiki masalah yang tepat ini di IIS EXPRESS memperbaikinya dengan mengedit host aplikasi .config ke bagian lokasi khusus di bawah ini. Saya telah mengatur otentikasi Windows di Visual Studio 2012 tetapi ketika saya masuk ke XML terlihat seperti ini.

tag autentikasi windows perlu ditambahkan di bawah seperti yang ditunjukkan.

<windowsAuthentication enabled="true" />

<location path="MyApplicationbeingDebugged">
        ``<system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <!-- INSERT TAG HERE --> 
                </authentication>
            </security>
        </system.webServer>
</location>
pengguna3507561
sumber
0

Saya telah berjuang dengan masalah ini mencoba membuat Aplikasi sederhana untuk SharePoint menggunakan Provider Hosted.

Setelah melalui applicationhost.config, di bagian, basicAuthentication disetel ke false. Saya mengubahnya menjadi true untuk melewati 401.2 dalam skenario saya. Ada banyak tautan lain tentang cara menemukan applicationhost.config untuk IIS Express.

kfrosty.dll
sumber
0

Saya tidak melihat jawaban "lengkap" ini di mana pun; Saya baru saja melihat satu tentang mengubah nomor port setelah saya memposting ini, jadi meh.

Pastikan bahwa di properti proyek Anda di studio visual bahwa url proyek tidak ditetapkan ke url atau port yang sama yang digunakan di IIS untuk pengikatan situs apa pun.

Saya mencari "mengapa" untuk ini, tetapi asumsi saya di atas kepala saya adalah bahwa IIS dan Visual Studio's IIS express menggunakan direktori yang sama saat membuat direktori virtual dan Visual Studio hanya dapat membuat direktori virtual baru dan tidak dapat memodifikasi apa pun yang telah dibuat oleh IIS saat menerapkan pengikatannya ke situs.

jangan ragu untuk mengoreksi saya tentang alasannya.

pengguna1040975
sumber
0

Halaman kesalahan kami berada di belakang halaman login, tetapi halaman login memiliki kesalahan di salah satu kontrol, yang membuat loop tak terbatas.

Kami menghapus semua kontrol dari halaman yang melanggar, dan menambahkannya kembali satu per satu hingga kontrol yang benar ditemukan dan diperbaiki.

Atron Seige
sumber
0

Dalam kasus saya (aplikasi ASP.NET MVC 4), Global.asaxfile tersebut hilang. Itu muncul di penjelajah Solusi dengan tanda seru. Saya menggantinya dan kesalahannya hilang.

Moses Machua
sumber