2010-01-29 16 views
14

Ich habe eine ASP.Net-Website und möchte eine benutzerdefinierte Fehlerseite verwenden. Ich habe den folgenden Code in meinem web.configImplementieren einer benutzerdefinierten Fehlerseite auf einer ASP.Net-Website

<customErrors mode="On" defaultRedirect="~/error.aspx"> 
    <error statusCode="404" redirect="~/error.aspx" /> 
</customErrors> 

Das Problem ist, wenn ich zu einer URL gehen, die nicht noch die 404-Fehlerseite in IIS-Manager angegeben existieren verwendet.

Frage: Wie kann ich die error.aspx-Seite erstellen, die ich erstellt habe? Warum überschreiben die Einstellungen im IIS-Manager die Datei web.config?

+0

Ich verwende IIS 6 auf Server 2003. – Yeodave

Antwort

23

Versuchen Sie diesen Weg, fast gleich .. aber das ist, was ich getan habe und arbeiten.

<configuration> 
    <system.web> 
     <customErrors mode="On" defaultRedirect="apperror.aspx"> 
      <error statusCode="404" redirect="404.aspx" /> 
      <error statusCode="500" redirect="500.aspx" /> 
     </customErrors> 
    </system.web> 
</configuration> 

oder versuchen Sie, die 404-Fehlerseite aus IIS-Einstellungen zu ändern, wenn dringend erforderlich.

+0

Wenn ich das Tag außerhalb der Tags habe, bekomme ich einen Fehler. Ich muss nach den Fehler-Tags ein schließendes -Tag setzen, aber es funktioniert immer noch nicht. – Yeodave

1
<customErrors defaultRedirect="~/404.aspx" mode="On"> 
    <error statusCode="404" redirect="~/404.aspx"/> 
</customErrors> 

-Code oben ist nur für die „Seite nicht gefunden Error-404“, wenn Dateierweiterung bekannt ist (.html, ASPX- etc)

Daneben haben Sie auch einstellen Kunden Fehler für die Erweiterung nicht bekannt oder nicht korrekt als

.aspwx oder .vivaldo. Sie haben httperrors Einstellungen in web.config

<httpErrors errorMode="Custom"> 
     <error statusCode="404" prefixLanguageFilePath="" path="/404.aspx"   responseMode="Redirect" /> 
</httpErrors> 
<modules runAllManagedModulesForAllRequests="true"/> 

es sein muss hinzufügen innerhalb der <system.webServer></system.webServer>

4

Es gibt zwei Möglichkeiten, benutzerdefinierte Fehlerseiten für ASP.NET-Websites zu konfigurieren:

  1. Internet Information Services (IIS) Manager (die GUI)
  2. web.config-Datei
Diese

Artikel beschreibt, wie jeder tun:

Der Grund Ihrer error.aspx Seite wird möglicherweise nicht angezeigt, weil Sie einen Fehler in Ihrer web.config haben. Versuchen Sie stattdessen:

<configuration> 
    <system.web> 
     <customErrors defaultRedirect="error.aspx" mode="RemoteOnly"> 
     <error statusCode="404" redirect="error.aspx"/> 
     </customErrors> 
    </system.web> 
</configuration> 

Sie müssen möglicherweise sicherstellen, dass Error Pages in IIS-Manager - Feature-Delegation-lesen gesetzt/schreiben:

IIS Manager: Feature Delegation panel

Auch diese Antwort kann Ihnen bei der Konfiguration der Datei web.config helfen:

Verwandte Themen