Buona giornata!Gestione ASP.NET MVC 404 e IIS7 <httpErrors>
Io uso la strategia per gestire errori 404 in questo modo: Error handling for ASP.NET MVC 2 and IIS 7.0 o questo: How can I properly handle 404 in ASP.NET MVC?
In breve: mi occupo di 404 come eccezione nel Global.asax
senza l'aggiunta di regole di routing, se l'eccezione è 404 rendo speciale di controllo \ azione con un messaggio di errore.
Su IIS6 funziona con mapping di caratteri jolly ASP.NET. Su IIS7 in modalità integrata ho bisogno di aggiungere quanto segue alla Web.config
(dove /error/HttpError404
è la mia azione con pagina 404):
<httpErrors>
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/error/HttpError404" responseMode="ExecuteURL" />
<error statusCode="403" prefixLanguageFilePath="" path="/error/HttpError403" responseMode="ExecuteURL" />
</httpErrors>
Perché? Il routing funziona in modo diverso sulla modalità integrata IIS e sulla mappatura dei caratteri jolly IIS6?
Grazie in anticipo!
UPDATE: Secondo le mie prove sembra che il mio movimentazione opere e la mia 404 azione di errore è reso, ma sembra che IIS vede 404 codice di risposta (che ho impostato a livello di codice nel mio 404 azioni) e sostituire la mia pagina con errori di default.
Quando ho impostato <httpErrors>
ho ottenuto due hit per la pagina 404: uno dalla gestione delle eccezioni in Global.asax
e uno da IIS.
Questa può essere la causa?
Ho avuto lo stesso problema per mesi e questo ha funzionato per me. Grazie per l'aggiornamento! –
Sei il benvenuto :) – artvolk
So che è un po 'tardi, ma quello che ha funzionato con me con MVC3 sta usando exisitingResponse = "Sostituisci" –