2010-10-05 18 views
6

Stworzyłem stronę błędu 404 o nazwie 404.aspx, która działa fantastycznie, gdy wywołuję ją ręcznie. Ale po ustawieniu "błąd niestandardowy" w web.config i IIS 6.0. To nie działa poprawnie.404 Błąd niestandardowy w IIS 6.0 i ASPX nie działa

na przykład, jeśli wpiszesz adres URL w niewłaściwy sposób, nie będzie działać i pojawi się komunikat podobny do tego poniżej.

XML Parsing Error: not well-formed 
Location: **http://domain/anything** (without an extension) 
Line Number 1, Column 2:<%@ page language="C#" masterpagefile="~/Public.master" autoeventwireup="true" inherits="_404, App_We 

A gdybym wpisać adres URL tak: http: //domain/anything.ASPX (dodawanie .aspx) na końcu, nastąpi przekierowanie do błędu niestandardowego 404.aspx prawidłowo i działa w porządku.

Co mogę zrobić, aby to zadziałało?

+1

Może to być związane z: http: // stackoverflow. com/questions/3704561/custom-error-pages-in-iis-6-0-using-aspx-pages – Castrohenge

+0

Ten sam autor również. – mxmissile

Odpowiedz

7

Wygląda na to, że typ strony niestandardowego błędu IIS ustawiono na File zamiast na Url.

Ustawienie na File spowoduje tylko, że usługi IIS będą renderować zawartość strony błędu dosłownie do strumienia odpowiedzi (np. Jako plik statyczny) zamiast wykonywać przekierowanie HTTP do strony błędu, powodując przetworzenie strony przez ASP. NETTO.

IIS 6 wymaga, aby 'Absolute URL w miejscu' należy wprowadzić w przypadku korzystania z URL typ wiadomości, na przykład:

/404.aspx

+0

to była pierwsza opcja, którą próbowałem. Ale cokolwiek piszę, pojawia się żółte objaśnienie z następującym błędnym formatem URL. Wprowadź bezwzględny adres URL w witrynie. – UXdesigner

+0

IfI wpisz cokolwiek w adresie URL bez rozszerzenia .aspx, wyświetli komunikat o błędzie, a jeśli wpisze nazwę jakiejkolwiek strony i doda rozszerzenie .aspx, otrzyma ładną stronę błędu. dziwna rzecz. nie wiem, co jeszcze można zrobić. – UXdesigner

+0

@UXDesigner - zobacz moją zaktualizowaną odpowiedź. – Kev

2

Zakładam, że składnia jest następująca:

<customErrors 
     mode="RemoteOnly" 
     defaultRedirect="~/errors/GeneralError.aspx" 
/> 

Aby zobaczyć stronę niestandardową sam tryb ustawiony na "On"

<customErrors 
     mode="On" 
     defaultRedirect="~/errors/GeneralError.aspx" 
/> 

trybów są zdefiniowane następująco:

  • Włączona - szczegóły błędu nie są wyświetlane nikomu, nawet użytkownikom lokalnym. Jeśli podasz niestandardową stronę błędu, będzie ona zawsze używana.
  • Wyłączone - wszyscy zobaczą szczegóły błędu, zarówno użytkownicy lokalni, jak i zdalni. Jeśli podałeś niestandardową stronę błędu, NIE będzie ona używana.
  • RemoteOnly - użytkownicy lokalni zobaczą szczegółowe strony błędów ze śledzeniem stosu i szczegółami kompilacji, podczas gdy zdalni użytkownicy otrzymają zwięzłą stronę informującą ich, że wystąpił błąd. Jeśli niestandardowa strona błędu jest dostępna, zostanie pokazana tylko użytkownikom zdalnym.
+0

Mam to w moim web.config UXdesigner

+0

dziękuję, szybko zmodyfikowałem mój webconfig. Dodałem to: Ale to prawie to samo. :/ – UXdesigner

+0

@UXdesigner - Mam nadzieję, że edytowałeś istniejące ustawienie customErrors i nie dodałeś sekundy. – Greg

Powiązane problemy