Ich habe eine ASP.Net-Website und möchte eine benutzerdefinierte Fehlerseite verwenden. Ich habe den folgenden Code in meine web.config eingefügt
<customErrors mode="On" defaultRedirect="~/error.aspx">
<error statusCode="404" redirect="~/error.aspx" />
</customErrors>
Das Problem ist, wenn ich zu einer nicht vorhandenen URL gehe, wird immer noch die 404-Fehlerseite verwendet, die im IIS Manager angegeben ist.
Frage: Wie kann ich die von mir erstellte error.aspx-Seite verwenden? Warum überschreiben die Einstellungen im IIS Manager die web.config?
Versuchen Sie es auf diese Weise, fast gleich ... aber das habe ich getan und gearbeitet.
<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 den IIS -Einstellungen zu ändern, falls dringend erforderlich.
Es gibt zwei Möglichkeiten, benutzerdefinierte Fehlerseiten für ASP.NET-Sites zu konfigurieren:
In diesem Artikel wird erläutert, wie die einzelnen Funktionen ausgeführt werden:
Der Grund, warum Ihre Seite error.aspx nicht angezeigt wird, ist möglicherweise auf einen Fehler in Ihrer web.config zurückzuführen. Versuchen Sie es 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 auf Lesen/Schreiben gesetzt ist:
Diese Antwort kann Ihnen auch beim Konfigurieren der Datei web.config helfen:
<customErrors defaultRedirect="~/404.aspx" mode="On">
<error statusCode="404" redirect="~/404.aspx"/>
</customErrors>
Der obige Code gilt nur für "Page Not Found Error-404", wenn die Dateierweiterung bekannt ist (.html, .aspx usw.).
Daneben haben Sie auch Kundenfehler für Erweiterung nicht bekannt oder nicht korrekt als gesetzt
.aspwx
oder .vivaldo
. Sie müssen httperrors
-Einstellungen in web.config
hinzufügen.
<httpErrors errorMode="Custom">
<error statusCode="404" prefixLanguageFilePath="" path="/404.aspx" responseMode="Redirect" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true"/>
es muss im <system.webServer>
</system.webServer>
sein
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="your page" responseMode="Redirect" />
</httpErrors>
</system.webServer>
Handelt es sich um einen Rechtschreibfehler in Ihrem schließenden Tag, dh:
</CustomErrors> instead of </CustomError>?