2012-03-02 26 views
8

Mam aplikację sieci web asp.net znajduje się na serwerze Chcę uniknąć wszystkich błędów niestandardowych i serwera z mojej witryny.Jak uniknąć niestandardowego/błędu serwera na stronie internetowej?

Do tego użyłem

<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPage/TryAgainLater.aspx"> <error redirect="~/ErrorPage/PageNotFound.aspx" statusCode="404"/> </customErrors> 

Stosując powyższy kod będzie w stanie uniknąć niektórych emisyjnej. to znaczy.

Przypuśćmy „http://Exaple.com/Careers.aspx” Strona dostępna w moim miejscu następnie

Przypadek 1. http://Exaple.com/Careersss.aspx „To działa jak za prawidłowe powyżej zasady”.

Przypadek 2. http://Exaple.com/[email protected]##Careersss.aspx "Nie działa" Uwaga: W tym miejscu dodam szczególny charakter

Przypadek 3: http://Exaple.com/Careersss.aspxxxx "Nie działa" Uwaga: dodać znak po ".aspx"

case 4: http://Exaple.com/Careersss.aspx/[email protected][email protected][email protected] ! "Nie łamie tutaj projektu". Uwaga: Dodaj "/" ze specjalnym znakiem.

pomóżcie mi, gdy użytkownik otrzyma zgłoszenie 2, 3, 4, a następnie automatycznie przekieruje go na stronę błędu.

Dzięki Z góry.

+1

Więc ... o co chodzi? A jak to jest związane z javascript? – kirilloid

+0

@kirilloid Wyobrażam sobie, że ma to związek z drugim przypadkiem, w którym używa on symbolu skrótu, ale nie jest to wcale jasne. – treeface

+0

Tutaj chcę uniknąć niepotrzebnego adresu URL, jeśli ktoś z zewnątrz próbuje odciągnąć naszą stronę, a ja po prostu chcę, aby bezpośrednio przejdzie na stronę błędu. –

Odpowiedz

1

Jeśli nie chcesz zmieniać ustawień IIS można zainstalować swój własny program obsługi do 404 błędów w Global.asax. Wystarczy dodać tę metodę do naszego Global.asax.cs kodu źródłowego pliku:

protected void Application_EndRequest(object sender, EventArgs e) 
{ 
    HttpResponse response = HttpContext.Current.Response; 
    if (response.StatusCode == 404 && response.SubStatusCode == 0) 
    { 
     response.Redirect("/test/TryAgainLater.aspx?error=NotFound"); 
     response.End(); 
    } 
} 

Jeśli to nie rozwiąże problemu, ale wciąż pojawiają się strona błędu 404, dodać to ustawienie do pliku web.config:

<configuration> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
</configuration> 
Powiązane problemy