Saya menjalankan Windows 7 Ultimate (64 bit) menggunakan Visual Studio 2010 RC. Saya baru-baru ini memutuskan untuk menjalankan VS / debug aplikasi saya di IIS daripada server dev yang menyertainya.
Namun, setiap kali saya mencoba menjalankan aplikasi MVC, saya mendapatkan kesalahan berikut:
Kesalahan HTTP 403.14 - Terlarang Server Web dikonfigurasikan untuk tidak mencantumkan konten direktori ini. Terperinci
Informasi Kesalahan
Modul DirektoriListingModule
Pemberitahuan ExecuteRequestHandler
Handler StaticFile Error
Kode 0x00000000 Diminta
URL http: // localhost: 80 / mySite /
Jalur Fisik C: \ myProject \ mySite \
Metode Logon Logon Anonim
Pengguna Anonim
Saya menempatkan default.aspx
file di direktori dan saya menerima kesalahan berikut:
HTTP Error 500.21 - Handler Kesalahan Server Internal "PageHandlerFactory-Integrated" memiliki modul buruk "ManagedPipelineHandler" dalam daftar modulnya
Apakah ada langkah lain yang saya lupa ambil untuk membuatnya bekerja?
Catatan: Saya menginstal IIS 7.5 setelah menginstal VS 2010 RC. Saya menggunakan built-in "Buat Direktori Virtual" tombol di bawah "Web" tab di "Properti" proyek MVC di Visual Studio 2010. Saya memastikan bahwa aplikasi menggunakan ASP.NET 4 App Pool.
Di bawah ini adalah fitur yang terinstal IIS yang saya miliki.
_Layout.cshtml
ke_PageLayout.cshtml
dan telah membuat yang sesuai perubahan_ViewStart.cshtml
juga, tapi ternyata itu tidak cukup. Setelah saya mengembalikan nama_Layout.cshtml
, itu mulai berfungsi. Apa yang membingungkan adalah yang_PageLayout.cshtml
diambil dengan benar pada Win7 32 bit tetapi tidak dijemput pada Win7 64 bit atau WinSvr2K8 R2.Jawaban:
ASP.NET 4 tidak terdaftar di IIS. Harus menjalankan perintah berikut di command line / run
32bit (x86) Windows
64bit (x64) Windows
Catatan dari komentar David Murdoch:
sumber
%windir%\Microsoft.NET\Framework64
direktori dan ubah perintah yang sesuai sebelum dijalankan (saat ini v4.0.30319).Satu hal lagi untuk memastikan Anda memiliki set berikut di web.config Anda:
sumber
runAllManagedModulesForAllRequests
(yang berjalan bahkan untuk file statis) Anda dapat menginstal perbaikan terbaru Microsoft: microsoft.com/download/en/… .Pastikan Anda memiliki set berikut di web.config Anda:
Solusi yang lebih baik:
Meskipun solusi di atas berfungsi dengan sangat baik , itu dapat menyebabkan masalah lain karena menjalankan semua modul HTTP Anda yang terdaftar pada setiap permintaan (bahkan pada setiap permintaan .jpg .gif .css .html .pdf dll) dan ini jelas merupakan pemborosan sumber daya. Sebagai gantinya
Pastikan atribut preCondition kosong berarti itu akan berjalan pada semua permintaan. [Baca lebih lanjut] ( http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html , "Baca pos asli")
sumber
<system.web><httpModules><add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />
, dalamWindows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
dan tampaknya telah dimodifikasi pada tanggal pemasangan VS 2012 saya. Jadi, pertanyaan selanjutnya adalah, apa yang ada di proyek saya yang lain yang membuatnya berfungsi?%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
disarankan oleh solusi teratas yang menetapkan default apa pun yang harus ada pada perangkat pengembangan saya. Perintah itu tidak menyelesaikan masalah bagi saya setelah saya menghapus referensi UrlRoutingModule.Alasan lain mengapa seseorang mungkin mendapatkan kesalahan ini adalah jika file Global.asax tidak ada dalam folder root lagi.
sumber
global.asax
hanya file yang terpengaruh).Saya juga menerima kesalahan ini dan menemukan bahwa "Pengalihan HTTP" tidak diaktifkan di Windows Server. Posting blog ini menunjukkan hal ini juga: http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx
sumber
Yesus yang manis. Saya mencoba semua hal di atas (tetapi menemukan pengaturan saya identik). NAMUN SOLUSI LAIN jika Anda mengalami masalah:
http://support.microsoft.com/kb/980368
Coba pasang KB ini untuk sistem Anda. Jika Anda melihat 404-an itu mungkin karena Anda tidak memiliki pembaruan ini - dan modul isapi tidak ditemukan dan tidak banyak yang dapat Anda lakukan tanpa ini!
sumber
Anda juga dapat mengganti AppPool ke mode Terpadu . Thnx ke Michael Bianchi ( https://stackoverflow.com/a/7956546/1143515 ), saya hanya ingin menggarisbawahi hal itu.
sumber
Bagi saya pada Azure Server 2012 R2 IIS 8.5 VM dengan aplikasi Asp.Net MVC 5 (bin dikerahkan MVC 5) Saya harus melakukan hal berikut dari prompt cmd yang ditinggikan walaupun saya sudah menginstal 4,5:
Sumber: http://support.microsoft.com/kb/2736284
Saya juga brute force memasang semua fitur IIS dengan PowerShell berikut:
Sumber: http://www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2
Sekarang aplikasi saya berfungsi.
sumber
Kami memiliki aplikasi MVC yang dipindahkan ke server baru. .NET 4 dan MVC 3 diinstal, tetapi kami masih mendapatkan "Kesalahan 403.14". Dalam hal ini, ini berarti bahwa IIS tidak mengerti bahwa ia berurusan dengan aplikasi MVC, ia mencari halaman default.
Solusinya sederhana: Pengalihan HTTP tidak diinstal di server.
Server Manager - Peran - Server Web (IIS) - Layanan Peran - Pengalihan HTTP: Tidak diinstal. Dipasang, masalah terpecahkan.
sumber
Juga jika aplikasi Anda dikompilasi, Anda harus memiliki
PrecompiledApp.config
di folder root aplikasi Anda jika tidak, Anda bisa mendapatkan
HTTP Error 403.14
juga.sumber
Solusi lain yang mungkin, jika Anda bergerak di sekitar global.asax Anda, pastikan markup menunjuk ke kelas MvcApplication yang benar. Semoga ini akan menyelamatkan seseorang di masa depan.
sumber
Saya telah menggunakan WebDeploy IIS Extension untuk mengimpor situs web saya dari IIS6 ke IIS7.5, jadi semua pengaturan IIS persis seperti yang ada di lingkungan produksi. Setelah mencoba semua solusi yang disediakan di sini, tidak ada yang bekerja untuk saya, saya hanya perlu mengubah pengaturan App Pool untuk situs web dari Classic ke Integrated.
sumber
Saya tiba-tiba menemui masalah 404.14 yang sama. Akhirnya masalah telah diperbaiki dengan menghapus centang "precompile while publishing" di pengaturan profil publish.
sumber
Saya mengubah rute default saya pada satu titik dari:
Untuk:
Yang memberi saya kesalahan Anda. Senang seseorang menyebutkan perutean karena saya mungkin akan melakukan ini selamanya.
sumber
Dalam kasus saya ASP.NET 4.5 tidak diinstal di server sehingga menginstal ASP.NET 4.5 memperbaiki masalah ini.
sumber
Anda dapat mengatasi kesalahan ini dengan menjalankan cmd sebagai admin daripada
Lakukan hal yang sama seperti pada gambar untuk windows 32 bit
Buat saja perubahan dalam 64 bit sebagai framework64 alih-alih hanya kerangka Lalu pergi ke iis dan menyegarkan situs
Jika Anda masih mendapatkan kesalahan, buat perubahan di kumpulan aplikasi
sumber
Saya punya masalah lain yang menyebabkan masalah ini.
Tidak ada yang berhasil. Ternyata di web.config saya di bawah system.webserver> modules saya memiliki yang berikut:
Jelas ini menghapus modul otentikasi windows yang tampaknya entah bagaimana merobohkan semuanya.
Saya harap ini membantu seseorang, karena ini menghabiskan sebagian besar malam saya!
sumber
UI agak berbeda di versi Windows Server yang lebih baru. Di sinilah Anda harus mengaktifkan ASP.Net untuk membuatnya berfungsi pada IIS
sumber
Menambahkan solusi lain untuk masalah ini.
dalam file Global.asax.cs saya, saya telah menonaktifkan file php yang dicoba untuk dikonsumsi oleh pipa MVC menggunakan yang berikut:
routes.IgnoreRoute( "{*php}" );
Saya telah melakukan ini sebelumnya dalam proyek MVC2 dan itu bekerja dengan baik, tetapi melakukan ini di aplikasi MVC 3 saya menyebabkan masalah yang dilaporkan di atas.
sumber
Namun alasan lain ini bisa terjadi - Anda
RouteConfig.cs
atauWebApiConfig.cs
tidak valid.Dalam kasus saya, saya memiliki rute yang ditentukan (perhatikan tanda kurung alih-alih kurung kurawal):
sumber
routes.MapRoute( name:"Default", url:"{controller}/{action}/{repositoryId}", defaults:new { controller = "Account", action = "Login", id = UrlParameter.Optional } );
. Ketika saya tetapid = UrlParameter.Optional
direpositoryId = UrlParameter.Optional
itu mulai bekerja!Harap dicatat untuk pengguna Windows 8 Anda perlu menambah / menghapus komponen windows dan menghapus versi .net reboot lalu menginstal ulang untuk mendaftarkannya dengan IIS. Saya kira ini terjadi jika Anda mendapatkan .net 4.5 dari visual studio dan menginstal IIS sesudahnya.
sumber
Seaneh mungkin, menginstal ulang IIS adalah apa yang berhasil bagi saya, dengan perintah berikut dijalankan dari dalam folder versi .net:
Ketika saya pertama kali menjalankan perintah ini, saya mulai mendapatkan Kesalahan HTTP 403.14. Tapi begitu saya menjalankan perintah lagi itu memecahkan masalah.
Obs : Hal lain yang juga saya lakukan adalah menghapus HTTP Redirect dari fitur server di layar Server Management sebelum menginstal ulang IIS. Mungkin ini juga berdampak dalam menyelesaikan masalah, tetapi saya tidak yakin. Jadi, jika menginstal ulang IIS masih tidak berhasil, coba hapus HTTP Redirect dan coba lagi. Semoga ini bisa bekerja untuk Anda juga.
sumber
aspnet_regiis.exe
tidak menginstal atau menginstal ulang IIS, itu hanya mendaftar versi NET framework tertentu, sehingga dapat digunakan oleh IIS untuk aplikasi hosting.Untuk mengatasi masalah ini tanpa harus beralih ke mode 32 bit Anda harus memperbarui kode sumber untuk proyek ini
Saya telah mengangkat masalah ini sebagai diskusi di papan diskusi di proyek cloud codeplex IT.
http://itcloud.codeplex.com/discussions/262000
sumber
Ini bekerja untuk saya dan mungkin berguna untuk yang lain.
Mungkin semua komponen yang diperlukan tidak ada atau / dan tidak semua terdaftar dengan benar. Untuk mengatasi ini, coba hapus centang pada semua opsi di dalam Panel Kontrol -> Aktifkan atau nonaktifkan fitur Windows -> Layanan Informasi Internet -> Layanan World Wide Web -> Fitur Pengembangan Aplikasi, hapus centang semua opsi dan periksa kembali semua kemudian reset IIS dan periksa apakah masalah telah terpecahkan.
sumber
Jika Anda menjalankan IIS 8.5 di Windows 8, atau Server 2012, Anda mungkin menemukan bahwa menjalankan mvc 4/5 (.net 4.5) tidak berfungsi di direktori virtual. Jika Anda membuat entri host lokal di file host untuk menunjuk kembali ke mesin lokal Anda dan kemudian arahkan situs web IIS lokal baru ke folder itu (dengan entri header host yang cocok) Anda akan menemukannya berfungsi kemudian.
sumber
Saya membuat namespace baru (dan karenanya folder) identik dengan rute ke controller (misalnya
MvcApp/Test/SomeClasses.cs
danMvcApp/Controllers/TestController.cs
). Ini menghasilkan juga 403,14!sumber
Bagi saya, solusinya adalah menambahkan paket NuGet Microsoft.AspNet.WebPages (ditambah dependensi Razor dan Infrastruktur) ke proyek web saya.
Infrastruktur harus diinstal ulang secara paksa karena tidak ditambahkan sebagai referensi pada awalnya.
sumber
Dalam kasus saya. NET CRL Version di Application pool prppertires diatur ke Tidak ada kode yang dikelola (tidak tahu mengapa). Mengaturnya ke .NET CRL Version v4.0.30319 memecahkan masalah.
sumber