Tworzę projekt sieciowy ASP MVC. Teraz mam wymaganie, które zmusza mnie do wdrożenia w środowisku programistycznym IIS7 (aby sprawdzić niektóre funkcje). Powyższy komunikat o błędzie pojawia się za każdym razem, gdy próbuję wpisać adres URL witryny internetowej. (Uwaga: maszyna programistyczna: Vista Home Premium, IIS7)
Co zrobiłem do tej pory:
Edytowano plik HOSTS (C: \ WINDOWS \ system32 \ drivers \ etc \ hosts).
Umieść w nim dwie domeny (127.0.0.1 domena1.com i 127.0.0.1 domena2.com).
Utworzono folder c: \ sites \ dirOfApplication i wdrożono z poziomu programu Visual Studio 8 w tym folderze.
W IIS7 utworzono nową witrynę z nazwą hosta domena1.com i powyższym folderem aplikacji.
Wpisanie adresu domena1.com w przeglądarce internetowej powoduje powyższy błąd (Błąd HTTP 403.14 - Zabroniony - serwer sieci Web jest skonfigurowany tak, aby nie wyświetlał zawartości tego katalogu).
Myślę, że coś mi brakuje, ale nie wiem co! Podjęto próbę wdrożenia plików System.Web.Mvc, System.Web.Abstraction i System.Web.Routing z takim samym wynikiem. Za każdym razem, gdy próbuję nacisnąć F5 i uruchomić aplikację, działa dobrze!
źródło
Odpowiedzi:
Może komuś się przyda: po przekonwertowaniu mojej aplikacji na MVC 4 z .NET framework 4.5 i zainstalowaniu frameworka na moim serwerze z IIS 7.0 napotkałem ten sam błąd „zabroniony”, o którym mowa w pytaniu. Wypróbowałem wszystkie opisane powyżej opcje bezskutecznie, gdy zauważyłem
brakowało w moim pliku web.config. Po dodaniu tego wszystko działało. Proste, ale łatwe do przeoczenia ...
EDYTOWAĆ:
Oczywiście powyższe rozwiązanie zadziała, ale faktycznie jest to strata zasobów. Myślę, że lepiej jest dodać moduł routingu, jak wskazał w komentarzach Chris Herring .
źródło
runAllManagedModulesForAllRequests="true"
z mojego pliku Web.config. Dziękuję, że wspomniałeś o tym, zanim spędziłem całą noc próbując to rozgryźć.Odpowiedział na SO tutaj , pytanie: 403 - Zabronione na podstawowym wdrożeniu MVC 3 na iis7.5
Biegnij
aspnet_regiis -i
. Często stwierdzałem, że musisz to zrobić, aby aplikacje 4.0 działały. Otwórz wiersz polecenia jakoAdministrator
(kliknij prawym przyciskiem myszy ikonę wiersza polecenia i wybierz Uruchom jako administrator):Po zainstalowaniu i zarejestrowaniu upewnij się, że aplikacja korzysta z puli aplikacji ustawionej na .NET 4.0.
UPDATE: Właśnie znalazłem problem z tym poleceniem. Użycie -i zaktualizowało wszystkie pule aplikacji do ASP.NET 4.0.
Użycie
aspnet_regiis -ir
powoduje zainstalowanie wersji programu ASP.NET, ale nie powoduje zmiany żadnych aplikacji internetowych na tę wersję. Możesz także przejrzeć opcję -iru.źródło
Ja też napotkałem ten błąd. Cała konfiguracja i uprawnienia były poprawne. Ale zapomniałem skopiować Global.asax na serwer i to właśnie spowodowało błąd 403.
źródło
To dlatego, że jesteś zbyt pewny tego, co robisz (ja)!
Na moim komputerze jest zainstalowany IIS 7, ale wymagany składnik ASP.NET (Panel sterowania-> Programy-> Włącz / Wyłącz-> ASP.NET) nie był.
Więc zainstalowanie tego rozwiązało problem
źródło
Miałem ten sam problem. Ten artykuł pomocy technicznej firmy Microsoft rozwiązał ten problem.
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-błędy-kiedy-próbują-przetworzyć-bez-rozszerzeń-urls-w-iis-7-and-i-7.5
W oknie dialogowym „Włączanie i wyłączanie funkcji systemu Windows” w aplikacji „Programy i funkcje” Panelu sterowania systemu Windows wykonaj następujące czynności:
-lub-
Ponowne włączenie modułu przekierowania błędów HTTP lub modułu kompresji zawartości statycznej gwarantuje, że ASP.NET i IIS poprawnie zsynchronizują zdarzenia potoku HTTP. Dzięki temu moduł routingu adresów URL może przetwarzać adresy URL bez rozszerzeń.
źródło
Spróbuj zastosować poniższe ustawienia:
1) Nadaj użytkownikowi niezbędne uprawnienia
IIS_IUSRS
wIIS Server
(kliknij prawym przyciskiem myszy witrynę internetową, a następnie Edytuj uprawnienia> Bezpieczeństwo).2) Jeśli używasz
.NET Framework 4
, upewnij się, że wersja .NET Framework znajduje sięv4.0
w tej,Application Pool
której używa Twoja witryna.3) Otwórz Commanp Prompt as
administrator
i uruchomiisreset
polecenie w celu ponownego uruchomieniaIIS Server
.Mam nadzieję że to pomoże...
źródło
W moim przypadku pomogło mi następujące podejście:
aspnet_regiis -i
wWindows\Microsoft.Net\Framework
Dodawanie modułów do system.webServer
źródło
Sprawdź również, jeśli korzystasz z x64, czy w ustawieniach puli aplikacji włączono aplikacje 32-bitowe
źródło
Na odznacz „precompile Podczas Publishing” - Byłem coraz 403.14 błąd na usługę internetową, którą właśnie napisany w VS2015 więc przepisał go w VS2013 i był już ten sam błąd. W obu przypadkach miałem włączoną opcję „Precompile While Publishing”. Usunąłem zaznaczenie, ale nadal otrzymywałem błąd. W moim przypadku miałem też „ Usuń wszystkie istniejące pliki przed opublikowaniem ”, ale nie usuwałem wszystkiego z katalogu docelowego na serwerze przed skopiowaniem tam nowo opublikowanych plików. Jeśli tego nie zrobisz - plik „ PrecompiledApp.config ” zostanie pozostawiony, co powoduje problem. Po usunięciu tego pliku byłem złoty w obu wersjach mojej usługi internetowej VS2013 i VS2015.
źródło
Próbowałem tutaj wszystkiego; nic nie działało. Problem był w moim
Web.config
pliku, w jakiś sposób zależne powiązanie zestawu zostało zmienione z minimum1
na minimum0
.źródło
Należy pamiętać, że czasami błąd
Managed pipeline mode
spowoduje ten błąd. Istnieją dwie opcje do wyboruintegrated
iclassic
.źródło
Jak naprawić „Błąd HTTP 403.14 - Zabroniony Serwer sieci Web jest skonfigurowany tak, aby nie wyświetlał zawartości tego katalogu”
Ten błąd występuje, gdy masz MVC 2+ działający w usługach IIS 7+, ponieważ ASP.NET 4 nie został zarejestrowany w usługach IIS. W moim przypadku tworzyłem projekt MVC 3 i hostowałem go w IIS 7.5.
Aby to naprawić, upewnij się, że masz zainstalowany MVC 2 lub nowszy i .Net Framework 4.0, a następnie uruchom wiersz poleceń jako administrator i wpisz następujący wiersz:
32-bitowy (x86)
% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir
64-bitowy (x64)
% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir
źródło
Sprawdź swój plik Global.asax . W moim przypadku był pusty.
źródło
Jeśli najlepsze odpowiedzi nie działają, poszukaj konfiguracji nazwanej
PrecompiledApp.config
w katalogu hostingu i usuń ją, jeśli istnieje. Ten plik uniemożliwia prawidłowe działanie usług IISExpress i LocalIIS. (I myślę, że to błąd) Zawartość pliku w moim przypadku to:Jestem w 100% przekonany, że to był problem z moim przypadkiem, ponieważ próbowałem wszystkiego w 2 godziny i testowałem wiele razy z tą konfiguracją.
Jeszcze jedno: nie możesz używać
aspnet_regiis
w nowszych wersjach systemu Windows i IIS, więc spróbujźródło
Panel sterowania> włącz lub wyłącz funkcje systemu Windows> Serwer WWW> Tworzenie aplikacji
Sprawdź ASP.NET
źródło
Napotkałem również ten sam błąd, pomimo wszystkich podanych rozwiązań z następujących powodów:
źródło
W moim przypadku brakowało web.config i wszystkich plików z wyjątkiem folderu / bin (nie zostały one w jakiś sposób skopiowane).
Głupie, ale to była ostatnia rzecz, jaką sprawdziłem.
źródło
Niedawno miałem ten błąd i stwierdziłem, że problem był spowodowany tym, że funkcja „Przekierowanie HTTP” nie została włączona na moim serwerze Windows Server. Ten post na blogu pomógł mi przejść przez rozwiązywanie problemów i znaleźć odpowiedź (pomimo starszej wersji systemu Windows Server): http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable -not-working-with-iis.aspx dla nowszych serwerów przejdź do zarządzania komputerem, a następnie przewiń w dół do roli serwera sieci Web i kliknij
add role services
źródło
Dzięki projektowi ASP.NET z C # 4.5 rozwiązałem ten problem instalując rozszerzenie ASP.NET w Instalatorze platformy internetowej
źródło
Możliwa może być jeszcze jedna rzecz
zainstaluj ręcznie .net framework 4.0
To rozwiązanie jest przeznaczone dla usług IIS7 w systemie Windows 7
otwórz cmd z ustawieniami administracyjnymi
przejdź do katalogu „C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319”
wpisz aspnet_regiis.exe -i
dostałem się do twojego inet managera wpisując komendę "inetmgr"
odśwież swoje IIS7
przeładuj witrynę.
źródło
Wiem, że miałeś ten problem na hoście wewnętrznym, ale miałem taki problem już wcześniej na hoście zewnętrznym iw moim przypadku miał on swoje własne rozwiązanie, może to oszczędziłoby komuś czas:
W rzeczywistości moja strona została ZATRZYMANA z jakiegoś powodu, którego obecnie nie znam, aby sprawdzić, czy masz ten sam problem, na stronie głównej WebsitePanel przejdź do Web -> Strony internetowe, a następnie wybierz nazwę domeny swojej witryny z listy , po tym w prawej części właśnie otwartej strony sprawdź, czy widzisz słowo STARTED, w przeciwnym razie, jeśli widzisz słowo STOPPED, zacznij od nowa. To wszystko.
źródło
Wiem, że to stary temat, ale możesz również otrzymać ten błąd (podczas debugowania), jeśli masz folder o takiej samej nazwie jak trasa w kontrolerze.
Na przykład, jeśli masz kontroler użytkownika z trasą o nazwie / User i masz TAKŻE folder w swoim rozwiązaniu o nazwie „User”, wówczas IISExpress spróbuje przeglądać folder zamiast wyświetlać widok.
źródło
Po wypróbowaniu każdego zaproponowanego tutaj rozwiązania znalazłem jeszcze jedno możliwe rozwiązanie: URLScan
W IIS wyłączono obsługę WebDAV, nawet w pliku web.config mojej aplikacji usunięto program obsługi i moduł WebDAV. PUT nadal zwracały 403 - zabronione bez żadnych wpisów dziennika w dziennikach usług IIS. (GET / POST działało dobrze).
Okazuje się, że IIS miał aktywny filtr ISAPI (URLScan), który blokował wszystkie PUT. Po usunięciu URLScan zadziałało.
źródło
Moja sytuacja była zupełnie inna niż wszystkie te, a komunikat o błędzie 403: zabroniony był trochę czerwonym śledziem.
Jeśli funkcja Application_Start () w module Global.asax próbuje uzyskać dostęp do pliku web.config i nie ma tam wpisu, do którego się odwołuje, usługi IIS dławią się i (z jakiegoś powodu) generują komunikat o błędzie 403: Forbidden.
Sprawdź dokładnie, czy nie brakuje wpisu w pliku web.config, do którego próbujesz uzyskać dostęp w module Global.asax.
źródło
Jeśli jesteś podobny do mnie i masz aplikację korzystającą z NHibernate, a powyższe odpowiedzi nie rozwiązały Twojego problemu.
Powinieneś spojrzeć na parametry połączenia w swojej aplikacji; prawdopodobnie w pliku webconfig, aby upewnić się, że jest poprawny.
źródło
Używam Identity Impersonate:
Podczas wysyłania na serwer musisz dać nazwę użytkownika dostęp do
Temporary ASP.NET
folderu Pliki, aby mógł poprawnie odczytywać / zapisywać / wykonywać:C:\Windows\Microsoft.NET\"frameworkversion"\"aspversion"\Temporary ASP.NET Files
Oczywiście zastąp „frameworkversion” i „aspversion” wersjami, których używasz.
źródło
Krok 1: Wybierz witrynę, dla której błąd HTTP jest generowany w usługach IIS, a następnie kliknij Przeglądanie katalogów, jak pokazano na poniższym obrazku:
Krok 2: W oknie przeglądania katalogów w usługach IIS kliknij Włącz w Akcjach po prawej stronie, jak pokazano na poniższym diagramie:
Teraz przeglądanie katalogów jest włączone dla Twojej witryny asp.net, po prostu uruchom ponownie aplikację internetową w usługach IIS i przeglądaj witrynę w przeglądarce i zobacz wynik.
źródło
Używam: Win Server 2012 R2 / IIS 8.5 / MVC4 / .Net 4.5
Jeśli żadne z powyższych nie zadziałało, spróbuj tego:
To kopnęło mnie w tyłek na kilka dni.
źródło
Miałem ten problem, ale został on łatwo rozwiązany, przechodząc do Menedżera internetowych usług informacyjnych (IIS), klikając dwukrotnie opcję Przeglądanie katalogów i klikając opcję Włącz.
W moim przypadku mogłem uzyskać bezpośredni dostęp do plików, ale nie mogłem uzyskać dostępu do folderów.
źródło
Błędnie wpisałem adres IP o jedną cyfrę, co oznaczało, że trafiał na jeden z moich pozostałych serwerów. Bardzo mylące, ponieważ strona błędu .NET jest wyświetlana na niewłaściwym komputerze!
źródło