nel mio colpo web.config è possibile vedere redirectMode = "ResponseRewrite". Ho letto questo è quello che ho bisogno di conservare il codice di stato. Sfortunatamente non appena l'ho ricevuto, ottengo:Come si usano errori personalizzati e si conserva il codice di risposta?
"Si è verificata un'eccezione durante l'elaborazione della richiesta.Inoltre, si è verificata un'altra eccezione durante l'esecuzione della pagina di errore personalizzata per la prima eccezione.La richiesta è stata interrotta."
L'omissione di questa variabile mi reindirizza correttamente a ~/Error/Index.cshtml ma ha una risposta di 200. doh. Ogni direzione sarebbe molto apprezzata, grazie.
<system.web>
<compilation debug="true" targetFramework="4.5" />
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Error/Index">
<error statusCode="404" redirect="~/Error/Index"/>
<error statusCode="500" redirect="~/Error/Index"/>
</customErrors>
<httpRuntime targetFramework="4.5" />
</system.web>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL">
<remove statusCode="403"/>
<remove statusCode="404"/>
<remove statusCode="500"/>
<error statusCode="403" path="~/Error/Index" responseMode="File"/>
<error statusCode="404" path="~/Error/Index" responseMode="File"/>
<error statusCode="500" path="~/Error/Index" responseMode="File"/>
</httpErrors>
</system.webServer>
Nei miei filterconfig.cs:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
// does this conflict?
filters.Add(new HandleErrorAttribute());
}
}
Soluzione piacevole, ma il lato negativo di questo è che non sarà possibile ottenere messaggi di errore dettagliati durante lo sviluppo. –