5

Wierzcie lub nie Próbowałem znaleźć odpowiedź na to pytanie za pomocą zwykłej wyszukiwarki Google, ale niczego nie znalazłem (używałem "niestandardowej strony błędu WebMatrix", "WebMatrix tworzenia niestandardowej strony błędu po stronie serwera") , itd.), ale być może nie szukam poprawnych terminów ...Jak utworzyć niestandardową stronę błędu na stronach internetowych ASP.NET za pomocą narzędzia WebMatrix?

W każdym razie, zastanawiałem się, czy istnieje sposób (uważam, że dotyczy to pliku web.config), aby wyświetlić niestandardową stronę błędów zamiast ANY strona błędu po stronie serwera.

Wiem, że jest jakiś sposób, aby to zrobić z niektórymi stronami (np. 404 lub 500), ale czy możliwe jest utworzenie strony catch dla wszystkich błędów po stronie serwera? (Wydaje mi się, że 404 nie będzie działać, ponieważ musi znaleźć twoją stronę, żeby pokazać jakąkolwiek stronę niestandardową?)

Proszę mi wybaczyć, jeśli to jest powtórne pytanie, ale mój brak wiedzy na ten temat prawdopodobnie pozostawił mnie bez poprawne wyszukiwane hasła do wyszukiwania, chociaż próbowałem również wyszukiwać SE.

Odpowiedz

10

Dodaj poniższe linie do pliku web.config w <system.web> węzła:

<customErrors mode="On" defaultRedirect="~/Error.cshtml" /> 

To przekieruje użytkownika do Error.cshtml (które trzeba utworzyć) w przypadku jakiegokolwiek błędu ASP.NET . Podczas programowania można zmienić wartość trybu na RemoteOnly, aby wyświetlić rzeczywisty komunikat o błędzie.

Jeśli chcesz niestandardowej strony 404, jak również, można wykonać następujące czynności:

<customErrors mode="On"> 
    <error statusCode="500" redirect="~/Error.cshtml" /> 
    <error statusCode="404" redirect="~/404.cshtml" /> 
</customErrors> 
+0

Awesome! Dzięki, Mike! Miałem wrażenie, że byłoby to dość łatwe, ale nie wiedziałem, od czego zacząć :) Jak by to wyglądało, gdybym potrzebował jednej niestandardowej strony błędu dla każdego kodu statusu (nie tylko 500), ale chciałem niestandardowego 404, a także ? Czy wyglądałoby to tak: ' '? – VoidKing

+0

Nie jestem pewien, czy zamówienie jest ważne, ale może się zdarzyć, że te bardziej szczegółowe muszą być najpierw. To jest coś, co możesz sam sprawdzić. –

+0

Okay, to nie problem. Ponadto, dziękuję za pokazanie mi opcji zdalnej tylko. To bardzo przydatne. Chciałbym jednak poinformować, że (tylko ze względu na dokładność Twojej odpowiedzi), 'remoteOnly' nie zadziała, a 'R' faktycznie będzie pisane wielką literą jak' RemoteOnly'. Prawdopodobnie nie ma to znaczenia, ponieważ strona błędu poinformuje o tym deweloperów, ale pomyślała, że ​​możesz chcieć wiedzieć na wypadek, gdybyś chciał ją edytować. Dzięki jeszcze raz! – VoidKing

Powiązane problemy