IIS 7.5, 2008rc2, klasyczny asp, 500 błędów msg:
Nie można wyświetlić strony, ponieważ wystąpił wewnętrzny błąd serwera.
Muszę wiedzieć, jak skonfigurować usługi IIS, aby uzyskać bardziej szczegółowy błąd.
Próbowałem ustawić wartość true wszystkich opcji debugowania w konfiguracji ASP.
Ale to nie zadziałało. Czy ktoś może mi pomóc?
asp-classic
error-handling
iis-7.5
egidiocs
źródło
źródło
Odpowiedzi:
Doszedłem do tego samego problemu i ustalił samo jak Alex K .
Jeśli więc „Wyślij błędy do przeglądarki” nie działa, ustaw również:
Strony błędów -> 500 -> Edytuj ustawienia funkcji -> „Błędy szczegółowe”
Zauważ też, że jeśli treść odesłanej strony błędu jest dość krótka i używasz IE, IE z przyjemnością zignoruje przydatną treść odesłaną przez serwer i wyświetli zamiast tego swoją własną stronę błędu ogólnego. Możesz to wyłączyć w opcjach IE lub użyć innej przeglądarki.
źródło
Turn Windows features on or off > Internet Information Services > World Wide Web Services > Common HTTP Features > [✓] HTTP Errors
.HOW-TO
for NET Error Pages ?Jeśli korzystasz z serwera zdalnego, możesz skonfigurować plik web.config w następujący sposób:
źródło
<system.webserver>
ustawienia były w moim przypadku wystarczające, dzięki.system.webServer
Sekcja jest odczytywany przez IIS 7+ nawet podczas jazdy klasycznej ASPcustomErrors
(np. IIS 7+, ASP.NET, Classic AppPoolKliknij dwukrotnie „ASP” na ekranie głównym witryny w IIS admin, rozwiń „Właściwości debugowania”, włącz „Wyślij błędy do przeglądarki” i kliknij „Zastosuj”.
W sekcji „Strony błędów” na ekranie głównym wybierz „500”, następnie „Edytuj ustawienia funkcji” i wybierz „Błędy szczegółowe”.
Należy pamiętać, że te same kroki dotyczą IIS 8.0 (Windows Server 2012).
źródło
Po wypróbowaniu odpowiedzi Vaclava i Alexa nadal musiałem wyłączyć „Pokaż przyjazne komunikaty o błędach HTTP” w IE
źródło
W pliku web.config pod
zamień (lub dodaj) linię
z
Wynika to z faktu, że IIS7 domyślnie przechwytuje kody stanu HTTP, takie jak 4xx i 5xx, generowane przez aplikacje znajdujące się w dalszej części potoku.
Następnie włącz opcję „ Wyślij błędy do przeglądarki ” w sekcji „ASP”, aw obszarze „ Strony błędów / Edytuj ustawienia funkcji ” wybierz opcję „Błędy szczegółowe”.
Nadaj także uprawnienia do zapisu w folderze strony internetowej wbudowanej grupie IIS_IUSRS .
źródło
Set-WebConfigurationProperty '/system.WebServer/httpErrors' -Name errorMode -Value Detailed
TLDR: Najpierw określ, skąd pochodzi błąd (przewiń w poszukiwaniu zrzutów ekranu czegoś, co przypomina błąd), wprowadź zmiany, aby uzyskać coś nowego, powtórz.
Najpierw określ, jaki komunikat o błędzie rzeczywiście się wyświetla.
Jeśli widzisz plik znajdujący się tutaj ...
% SystemDrive% \ inetpub \ custerr \\ 500.htm
... który ogólnie wygląda tak:
... wtedy wiesz, że widzisz aktualnie skonfigurowaną stronę błędu w ** IIS ** i NIE musisz zmieniać ustawienia niestandardowych błędów ASP.net, ustawienia szczegółów błędu asp lub ustawienia przeglądarki „pokaż przyjazne błędy http”.
Możesz spojrzeć na powyższą ścieżkę zamiast ufać mojemu zrzutowi ekranu na wypadek, gdyby ktoś go zmienił.
„Tak, widzę opisany wyżej błąd ...”
W tym przypadku widzisz ustawienie < httpErrors > lub w Menedżerze IIS są to Strony błędów -> Edytuj ustawienia funkcji. Domyślnie jest to errorMode = DetailedLocalOnly na poziomie węzła serwera (w przeciwieństwie do poziomu witryny), co oznacza, że chociaż zobaczysz tę skonfigurowaną stronę błędu w trybie zdalnym, powinieneś być w stanie zalogować się lokalnie na serwerze i zobaczyć pełne błąd, który powinien wyglądać mniej więcej tak:
Powinieneś mieć wszystko, czego potrzebujesz w tym momencie, aby naprawić bieżący błąd.
„Ale nie widzę szczegółowego błędu nawet podczas przeglądania na serwerze”
To pozostawia kilka możliwości.
„Logowanie się do serwera nie jest dla mnie opcją”
Zmień httpErrors swojej witryny na „Szczegółowe”, abyś mógł zobaczyć je zdalnie. Ale jeśli to nie działa, twój błąd może być już błędem konfiguracji, patrz punkt 3 powyżej powyżej. Więc możesz utknąć z # 4 lub # 5 i będziesz potrzebować kogoś z zespołu serwerów.
„Nie widzę strony błędu opisanej powyżej. Widzę coś innego”
Jeśli to zobaczysz ...
... i spodziewasz się zobaczyć coś takiego ...
... musisz zmienić „Wyślij błędy do przeglądarki” na „prawda” w Menedżerze usług IIS, w obszarze Witryna -> IIS -> ASP -> Właściwości debugowania
Jeśli to zobaczysz ...
albo to...
... musisz wyłączyć przyjazne błędy w przeglądarce lub użyć podglądu strony skrzypka, aby zobaczyć rzeczywistą odpowiedź w stosunku do tego, co przeglądarka chce Ci pokazać.
Jeśli to zobaczysz ...
... wtedy niestandardowe błędy działają, ale nie masz niestandardowej strony błędów (oczywiście w tym momencie mówiliśmy o .net, a nie o klasycznym asp). Musisz zmienić tag customErrors w pliku web.config na RemoteOnly, aby wyświetlić na serwerze, lub Off, aby wyświetlić zdalnie.
Jeśli widzisz coś, co ma styl podobny do Twojej witryny, wówczas niestandardowe błędy są prawdopodobnie włączone lub zdalne tylko i wyświetlają niestandardową stronę (na przykład Widoki-> Udostępnione-> Błąd.cshtml w MVC). To powiedziawszy, jest mało prawdopodobne, ale możliwe, że ktoś zmienił strony w IIS dla httpErrors, więc zobacz pierwszą sekcję na ten temat.
źródło
spróbuj ustawić wartość atrybutu „Istniejące odpowiedzi” na „PassThrough”. Mój został ustawiony na „Zamień”, co powodowało, że YSOD się nie wyświetlał.
źródło
Jedną rzeczą, o której nikt nie wspominał, jest bardzo szybka i tymczasowa poprawka, możesz zobaczyć błąd na lokalnym hoście tego serwera WWW.
źródło
Możesz także zweryfikować, że jeśli zmieniłeś główny folder strony internetowej (
c:\inetpub\wwwroot
) na inny folder, musisz dać uprawnienia do odczytu grupie IIS_IUSRS w nowym folderze.źródło
Fot ludzi, którzy wypróbowali WSZYSTKO, ale NIE MOŻNA uzyskać szczegółowych informacji o błędach, tak jak ja, warto sprawdzić różne poziomy konfiguracji. Mam plik konfiguracyjny na poziomie strony internetowej i na poziomie aplikacji (wewnątrz strony internetowej) sprawdź oba. Ponadto, jak się okazało, wyłączono Błędy szczegółowe w najwyższym węźle w IIS (tuż pod Stroną początkową, ma taką samą nazwę jak nazwa komputera serwera). Sprawdź tam strony błędów.
źródło
Znaleziono to.
http://blogs.iis.net/ksingla/archive/2009/02/16/iis-7-5-updates-to-custom-errors-and-compression.aspx
uruchom cmd jako administrator, przejdź do folderu system32 \ inetsrv i wykonaj:
Teraz widzę szczegółowe błędy asp.
źródło
Jeśli uruchomisz przeglądarkę na serwerze i przetestujesz swój adres URL projektu za pomocą lokalnego adresu IP, otrzymałeś wszystkie błędy tego projektu bez ogólnie strony błędu (na przykład 500 strony błędu).
źródło