Saya sedang mengembangkan proyek web ASP MVC. Sekarang saya memiliki persyaratan yang memaksa saya untuk menggunakan IIS7 pengembangan (untuk memeriksa beberapa fitur). Saya mendapatkan pesan kesalahan yang disebutkan di atas setiap kali saya mencoba mengetik URL situs web. (Catatan: mesin pengembangan: Vista Home Premium, IIS7)
Apa yang telah saya lakukan sampai sekarang:
Mengedit file HOSTS (C: \ WINDOWS \ system32 \ drivers \ etc \ hosts).
Masukkan dua domain di dalamnya (127.0.0.1 domain1.com & 127.0.0.1 domain2.com).
Membuat folder c: \ situs web \ dirOfApplication dan digunakan dari dalam Visual Studio 8 ke folder ini.
Di IIS7 dibuat situs baru dengan nama host domain1.com dan folder aplikasi di atas.
Mengetik alamat domain1.com di browser Web menghasilkan kesalahan di atas (Kesalahan HTTP 403.14 - Forbidden - Server Web dikonfigurasi untuk tidak mencantumkan konten direktori ini.)
Saya pikir saya kehilangan sesuatu tetapi tidak tahu apa! Mencoba menyebarkan file System.Web.Mvc, System.Web.Abstraction & System.Web.Routing dengan hasil yang sama. Setiap kali saya mencoba menekan F5 dan menjalankan aplikasi, itu berfungsi dengan baik!
sumber
Jawaban:
Mungkin ini berguna bagi seseorang: Setelah mengonversi aplikasi saya ke MVC 4 dengan .NET framework 4.5 dan menginstal framework pada server saya dengan IIS 7.0, saya menemukan kesalahan 'terlarang' yang sama yang disebutkan dalam pertanyaan. Saya mencoba semua opsi yang dijelaskan di atas tidak berhasil, ketika saya perhatikan
hilang dari web.config saya. Setelah menambahkan ini, semuanya berfungsi. Sederhana, tetapi mudah untuk diabaikan ...
EDIT:
Tentu saja solusi di atas akan berhasil, tetapi ini memang pemborosan sumber daya. Saya pikir lebih baik menambahkan modul routing seperti yang ditunjukkan oleh Chris Herring di komentar.
sumber
runAllManagedModulesForAllRequests="true"
dari Web.config saya. Terima kasih telah menyebutkan ini sebelum saya menghabiskan sepanjang malam mencoba mencari tahu ini.Dijawab pada SO di sini , pertanyaan: 403 - Dilarang menggunakan dasar MVC 3 di iis7.5
Lari
aspnet_regiis -i
. Seringkali saya menemukan Anda perlu melakukan itu untuk membuat aplikasi 4.0 bekerja. Buka prompt perintah sebagaiAdministrator
(klik kanan ikon command prompt dan pilih Run as Administrator):Setelah diinstal dan terdaftar, pastikan aplikasi Anda menggunakan kumpulan aplikasi yang diatur ke .NET 4.0.
UPDATE: Saya baru saja menemukan masalah dengan perintah ini. Menggunakan -i memperbarui semua kumpulan aplikasi ke ASP.NET 4.0.
Menggunakan
aspnet_regiis -ir
menginstal versi ASP.NET tetapi tidak mengubah aplikasi web apa pun ke versi ini. Anda mungkin juga ingin meninjau opsi -iru.sumber
Saya juga mengalami kesalahan ini. Semua konfigurasi dan izin sudah benar. Tapi saya lupa menyalin Global.asax ke server, dan itulah yang menyebabkan kesalahan 403.
sumber
Itu karena terlalu yakin tentang apa yang Anda (saya) lakukan!
Pada mesin saya ada IIS 7 diinstal tetapi komponen ASP.NET yang diperlukan (Control Panel-> Programs-> Turn On / Off-> ASP.NET) tidak.
Jadi menginstal ini menyelesaikan masalah
sumber
Saya memiliki masalah yang sama. Artikel dukungan Microsoft ini memperbaikinya untuk saya.
https://support.microsoft.com/en-us/help/2023146/mvc-2-and-asp.net-4-web-forms-applications-that-use-url-routing-might-return-http- 404-kesalahan-ketika-mereka-mencoba-proses-ekstensi-url-on-iis-7-dan-iis-7.5
Dalam kotak dialog "Aktifkan atau Nonaktifkan Fitur Windows" dari Program dan Fitur "Panel Kontrol Windows", lakukan langkah-langkah berikut:
-atau-
Mengaktifkan kembali modul Pengalihan Kesalahan HTTP atau modul Kompresi Konten Statis memastikan bahwa ASP.NET dan IIS menyinkronkan peristiwa pipa HTTP dengan benar. Ini memungkinkan modul perutean URL untuk memproses URL tanpa ekstensi.
sumber
Coba terapkan pengaturan berikut yang ditunjukkan di bawah ini:
1) Berikan izin yang diperlukan kepada
IIS_IUSRS
pengguna padaIIS Server
(Klik kanan pada situs web lalu Edit Izin> Keamanan).2) Jika Anda menggunakan
.NET Framework 4
, pastikan bahwa versi .NET Framework adav4.0
diApplication Pool
situs web Anda.3) Buka Commanp Prompt as
administrator
dan jalankaniisreset
perintah untuk memulai kembaliIIS Server
.Semoga ini membantu...
sumber
Dalam kasus saya, pendekatan berikut membantu saya:
aspnet_regiis -i
diWindows\Microsoft.Net\Framework
Menambahkan modul ke system.webServer
sumber
Harap periksa juga, jika Anda menjalankan x64, bahwa Anda telah mengaktifkan aplikasi 32-bit di pengaturan kumpulan aplikasi
sumber
Pada Hapus centang "Precompile During Publishing" - Saya mendapatkan kesalahan 403.14 pada layanan web yang baru saja saya tulis di VS2015 jadi saya menulis ulang di VS2013 dan mendapatkan kesalahan yang sama. Dalam kedua kasus saya memiliki "Precompile During Publishing" pada. Saya tidak mencentangnya tetapi masih mendapatkan kesalahan. Dalam kasus saya, saya juga memiliki " Hapus semua file yang ada sebelum dipublikasikan " tetapi tidak menghapus semuanya dari direktori target di server sebelum menyalin file yang baru diterbitkan di sana. Jika Anda tidak melakukan itu - file " PrecompiledApp.config " tertinggal yang menyebabkan masalah. Setelah saya menghapus file itu, saya menjadi pengguna layanan web versi VS2013 dan VS2015.
sumber
Saya mencoba semuanya di sini; tidak ada yang berhasil. Masalahnya ada di
Web.config
file saya , entah bagaimana penjilidan perakitan bergantung berubah dari minimum1
ke minimum0
.sumber
Harap perhatikan bahwa terkadang salah
Managed pipeline mode
akan menyebabkan kesalahan ini. Ada dua pilihan untuk dipilihintegrated
danclassic
.sumber
Cara Memperbaiki "Kesalahan HTTP 403.14 - Terlarang Server Web dikonfigurasi untuk tidak mencantumkan konten direktori ini"
Kesalahan ini terjadi ketika Anda menjalankan host MVC 2+ di IIS 7+, ini karena ASP.NET 4 tidak terdaftar di IIS. Dalam kasus saya, saya membuat proyek MVC 3 dan hosting di IIS 7.5.
Untuk memperbaikinya, pastikan Anda memiliki MVC 2 atau lebih tinggi dan .Net Framework 4.0 diinstal, kemudian jalankan prompt perintah sebagai administrator dan ketik baris berikut:
32bit (x86)
% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir
64bit (x64)
% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir
sumber
Periksa file Global.asax Anda . Dalam kasus saya, itu kosong.
sumber
Jika jawaban teratas tidak berfungsi, cari konfigurasi bernama
PrecompiledApp.config
di direktori hosting dan hapus jika ada. File ini mencegah IISExpress dan LocalIIS untuk berfungsi dengan baik. (Dan saya pikir itu bug) Konten file dalam kasus saya adalah:Dan saya 100% positif itu adalah masalah dengan kasus saya karena saya mencoba semuanya dalam 2 jam dan diuji berkali-kali dengan konfigurasi ini.
Satu hal lagi: Anda tidak dapat menggunakan
aspnet_regiis
Windows versi yang lebih baru dan IIS jadi cobalahsumber
Control Panel> menyalakan atau mematikan fitur windows> Web Server> Pengembangan Aplikasi
Periksa ASP.NET
sumber
Saya juga mengalami kesalahan yang sama, meskipun semua solusi yang disediakan untuk alasan berikut:
sumber
Dalam kasus saya web.config dan semua file kecuali folder / bin hilang (entah bagaimana tidak disalin).
Konyol, tapi itu hal terakhir yang aku periksa.
sumber
Saya baru-baru ini mengalami kesalahan ini dan menemukan bahwa masalah itu disebabkan oleh fitur "HTTP Redirection" tidak diaktifkan di Windows Server saya. Posting blog ini membantu saya menyelesaikan pemecahan masalah untuk menemukan jawabannya (meskipun versi Windows Server yang lebih lama): http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable -tidak bekerja dengan-iis.aspx untuk server yang lebih baru buka Manajemen komputer, kemudian gulir ke bawah ke peran Server Web dan klik
add role services
sumber
Dengan proyek ASP.NET dengan C # 4.5 Saya telah memecahkan masalah tersebut dengan menginstal ekstensi ASP.NET di Web Platform Installer
sumber
Juga satu hal lagi dapat dimungkinkan
instal .net framework 4.0 secara manual
Solusi ini untuk IIS7 di jendela 7
buka cmd dengan ketentuan administrasi
buka direktori "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319"
ketik aspnet_regiis.exe -i
sampai ke manajer inet Anda dengan mengetikkan perintah run "inetmgr"
segarkan IIS7 Anda
memuat ulang situs.
sumber
Saya tahu Anda memiliki masalah ini di host internal, tetapi saya pernah mengalami masalah seperti sebelumnya di host eksternal dan dalam kasus saya itu memiliki resolusi sendiri, mungkin bisa menghemat waktu seseorang:
Sebenarnya situs web saya DIHENTIKAN oleh beberapa alasan yang saat ini tidak saya sadari, untuk memeriksanya jika Anda memiliki masalah yang sama, di halaman utama WebsitePanel buka Web -> Situs web lalu pilih nama domain situs web Anda dari daftar , setelah itu di sisi kanan halaman baru saja dibuka, periksa apakah Anda melihat kata DIMULAI, jika Anda melihat kata STOPPED, mulailah lagi. Itu saja.
sumber
Saya tahu ini adalah topik lama, tetapi Anda juga bisa mendapatkan kesalahan ini (saat Anda sedang debug) jika Anda memiliki folder dengan nama yang sama dengan rute di controller.
Misalnya, jika Anda memiliki UserController, dengan rute yang disebut / Pengguna dan Anda JUGA memiliki folder dalam solusi Anda yang disebut "Pengguna" maka IISExpress akan mencoba menelusuri folder alih-alih menunjukkan tampilan Anda.
sumber
Setelah mencoba setiap solusi yang disarankan di sini, saya menemukan solusi lain yang mungkin: URLScan
IIS telah menonaktifkan WebDAV, bahkan di web.config aplikasi saya, handler dan modul WebDAV telah dihapus. PUT masih mengembalikan 403 - Dilarang tanpa ada entri log di log IIS. (GET / POST bekerja dengan baik).
Ternyata IIS mengaktifkan Filter ISAPI (URLScan) aktif yang mencegah semua PUT. Setelah menghapus URLScan, itu berhasil untuk saya.
sumber
Situasi saya benar-benar berbeda dari semua ini dan 403: Pesan kesalahan terlarang adalah sedikit ikan haring merah.
Jika fungsi Application_Start () Anda di modul Global.asax mencoba mengakses web.config dan entri yang merujuk itu tidak ada di sana, IIS tersedak dan (karena alasan tertentu) melempar pesan kesalahan 403: Forbidden.
Periksa kembali apakah Anda tidak melewatkan entri di file web.config yang berusaha diakses di modul Global.asax Anda.
sumber
Jika Anda seperti saya dan memiliki aplikasi menggunakan NHibernate dan jawaban di atas belum menyelesaikan masalah Anda.
Anda harus melihat string koneksi di aplikasi Anda; mungkin di file konfigurasi web untuk memastikan itu benar.
sumber
Saya telah menggunakan Identity Imersonate:
Saat mendorong ke server Anda harus memberikan akses nama pengguna ke
Temporary ASP.NET
folder Files sehingga dapat membaca / menulis / menjalankan dengan benar:C:\Windows\Microsoft.NET\"frameworkversion"\"aspversion"\Temporary ASP.NET Files
Ganti "frameworkversion" dan "aspversion" dengan versi yang Anda gunakan.
sumber
Langkah 1: Pilih Situs yang menghasilkan Galat HTTP di IIS dan kemudian klik Penjelajahan Direktori seperti yang ditunjukkan pada gambar di bawah ini:
Langkah 2: Di Jendela Penjelajahan Direktori di IIS klik Aktifkan dalam Tindakan di sisi kanan seperti yang ditunjukkan pada diagram di bawah ini:
Sekarang Penjelajahan Direktori diaktifkan untuk situs web asp.net Anda, cukup restart aplikasi web di IIS dan Jelajahi situs di browser Anda dan lihat hasilnya.
sumber
Saya menggunakan: Win Server 2012 R2 / IIS 8.5 / MVC4 / .Net 4.5
Jika tidak ada yang di atas berhasil maka coba ini:
Ini menendang pantat saya selama beberapa hari.
sumber
Saya punya masalah ini tetapi itu diperbaiki dengan mudah dengan pergi ke Manajer Layanan Informasi Internet (IIS), mengklik dua kali Penjelajahan Direktori dan mengklik Aktifkan.
Dalam kasus saya, saya dapat mengakses file secara langsung tetapi tidak dapat mengakses folder.
sumber
Saya salah mengetik alamat IP dengan satu digit, yang berarti alamat salah satu server saya yang lain. Sangat membingungkan saat Anda mendapatkan halaman .NET error tetapi dari mesin yang salah!
sumber