Sto riscontrando un problema piuttosto interessante con la gestione personalizzata delle pagine di errore per una nuova applicazione ASP.NET MVC.ASP.NET MVC La pagina CustomError non viene visualizzata per alcuni dei 400 errori
Questo problema è come questo:
- se sto chiamando un URL (non importa quale) con un argomento "cattivo" alla fine della URL, come ..../c<
, l'applicazione visualizza l'errore server corretto pagina come indicato nel web.config;
- se sto cambiando l'URL con uno più cattivo, come .../<c
(per sembrare più simile a un tag HTML, non c'è più la pagina di errore del server visualizzata nel browser e invece di quello, sto ottenendo un semplice YSOD con un messaggio come An exception occurred while processing your request. Additionally, another exception occurred while executing the custom error page for the first exception. The request has been terminated.
secondo ELMAH, entrambe le richieste si è conclusa con un codice 400 di stato e il messaggio di essere:
- per il primo: System.Web.HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (<). at System.Web.HttpRequest.ValidateInputIfRequiredByConfig() at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
- per il secondo: System.Web.HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (<). at System.Web.HttpRequest.ValidateInputIfRequiredByConfig() at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
Quindi, entrambi gli errori sono gli stessi, il codice di stato è lo stesso, ma per uno degli errori, la pagina di errore personalizzata non è getti visualizzato. Sono anche andato su global.asax in modalità debug e controllato lo Server.GetLastError()
in protected void Application_Error(object sender, EventArgs e)
e ancora, entrambi gli errori erano gli stessi, niente è diverso.
In web.config, questo è come la mia tag <customErrors>
assomiglia:
<customErrors mode="On" defaultRedirect="/ServerError.aspx" redirectMode="ResponseRewrite"> <error statusCode="500" redirect="/ServerError.aspx" /> <error statusCode="404" redirect="/PageNotFound.aspx" /> </customErrors>
Può per favore qualcuno mi dica il motivo per cui il comportamento è diverso in questi due casi?
Grazie mille per il vostro tempo.
Su cosa stai organizzando? Cassini? IIS6? IIS7 +? –
IIS 8.5 (Windows 8.1) e anche Sito Web di Azure. – Edi