in meinem web.config blasen können Sie redirectMode = "ResponseRewrite" sehen. Ich lese das ist, was ich brauche, um den Statuscode zu erhalten. Leider sobald ich es habe, bekomme ich:Wie verwenden Sie benutzerdefinierte Fehler und behalten Sie den Antwortcode bei?
"Eine Ausnahme ist bei der Verarbeitung Ihrer Anfrage aufgetreten. Darüber hinaus trat eine weitere Ausnahme beim Ausführen der benutzerdefinierten Fehlerseite für die erste Ausnahme. Die Anfrage wurde beendet."
Das Auslassen dieser Variablen leitet mich erfolgreich zu ~/Error/Index.cshtml um, hat aber eine Antwort von 200. doh. Jede Richtung würde sehr geschätzt werden, danke.
<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>
In meinem filterconfig.cs:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
// does this conflict?
filters.Add(new HandleErrorAttribute());
}
}
Nizza Lösung hilft, aber der Nachteil ist, dass Sie nicht in der Lage sein werden, detaillierte Fehlermeldungen während der Entwicklung zu erhalten. –