Forums Neueste Beiträge
 

funktioniert web.config customErrors nur für NET Dateitypen?

05/03/2009 - 14:57 von Lutz Elßner | Report spam
In der Hilfe (allerdings IIS 6) steht es so:

Die benutzerdefinierten Fehler werden nur für von ASP.NET behandelte Elemente ausgegeben. Wenn beispielsweise auf eine nicht
vorhandene HTM-Seite verwiesen wird, gibt Microsoft Internetinformationsdienste (IIS) den standardmàßigen Fehler 404 aus. Wenn Sie
dagegen auf eine nicht vorhandene ASPX-Seite verweisen, gibt ASP.NET den benutzerdefinierten Fehler 404 aus. Voraussetzung hierfür
ist, dass Sie den Fehler konfiguriert haben.

web.config
<customErrors mode="On">
<error statusCode="404" redirect="err404.htm"/>
</customErrors>

Auf dem Visual Studio 2008 Developer Webserver wird die Fehlerseite
für alle fehlenden Dateitypen angezeigt,
auf dem IIS 7 / Windows 2008 Web Server aber nur "managed" Dateitypen.

Nun gilt für IIS 7 (neu) folgendes:
http://learn.iis.net/page.aspx/243/...with-iis7/

Man soll die preCondition="managedHandler" aus schalten z.B. mit:
<modules runAllManagedModulesForAllRequests="true" />

Dann sollen alle Requests von NET verarbeitet werden.
Für die Weiterleitung von 404 Errors, wie oben in web.config,
hat das jedenfalls keine Auswirkung.

Ich habe es auch einzeln probiert:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthentication" />
<add name="FormsAuthentication"
type="System.Web.Security.FormsAuthenticationModule" />
<remove name="UrlAuthorization" />
<add name="UrlAuthorization"
type="System.Web.Security.UrlAuthorizationModule" />
<remove name="DefaultAuthentication" />
<add name="DefaultAuthentication"
type="System.Web.Security.DefaultAuthenticationModule" />
</modules>
</system.webServer>

Wie überzeuge ich IIS 7 / Windows 2008 dazu, alle 404 Errors an die
angegebene Fehlerseite zu übergeben?
Der Developer Webserver kann das ja auch...

Die Dateiendungen einzeln den NET Handlern zuweisen,
soll ja beim IIS 7 nicht mehr nötig sein?

Und wenn doch, wie kann man "alle fehlenden Typen" erfassen?

Lutz
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
05/03/2009 - 15:12 | Warnen spam
Hallo Lutz,

"Lutz Elßner" schrieb:

Auf dem Visual Studio 2008 Developer Webserver wird die Fehlerseite
für alle fehlenden Dateitypen angezeigt,
auf dem IIS 7 / Windows 2008 Web Server aber nur "managed" Dateitypen.



Klar. der Development Webserver jagt _alles_ durch die ASP.NET Engine.
Darum empfehle ich auch, direkt mit IIS zu entwickeln, da hat man ein
paar Probleme weniger.

Dann sollen alle Requests von NET verarbeitet werden.
Für die Weiterleitung von 404 Errors, wie oben in web.config,
hat das jedenfalls keine Auswirkung.



Hast Du meinen Beitrag überhaupt gelesen? Mit der von dir gezeigten
Einstellung kannst Du den Request auch in der global.asax im Event
BeginRequest abfangen und behandeln.

Sub Application_BeginRequest( ... )

End Sub

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen