2017-02-26 3 views
0

ich eine Anwendung mit asp.net MvcWie kann ich trennen web.config httperrors mit HttpResponseMessage Httpstatuscode

I Ajax Post Anfrage sende entwickle.

Ich erhalte 500 Statuscodes, wenn während des Betriebs ein Fehler auftritt.

Dieses Szenario ist korrekt, aber der Code in der Datei web.config wird auf die Fehlerseite umgeleitet. meine Codes

Diese

public class ErrorHandler : FilterAttribute, IExceptionFilter 
    { 
     public void OnException(ExceptionContext filterContext) 
     { 
      var response = filterContext.RequestContext.HttpContext.Response; 

      filterContext.ExceptionHandled = true; 

      response.StatusCode = (int)HttpStatusCode.InternalServerError; 

      filterContext.Result = new JsonResult 
      { 
       Data = new { 

        success = false 
       }, 

       JsonRequestBehavior = JsonRequestBehavior.AllowGet 
      }; 
     } 
    } 

Web.Config

<httpErrors existingResponse="Replace" defaultResponseMode="ExecuteURL" errorMode="Custom"> 
     <remove statusCode="500"/> 
     <error statusCode="500" path="/common/error" responseMode="Redirect"/> 
    </httpErrors> 

Antwort

0

A Little Anregung

Sie sollten nicht die response.StatusCode-HttpStatusCode.InternalServerError die ganze Zeit festgelegt, wenn es eine Ausnahme ist. Versuchen Sie, genauer zu sein, damit Sie nicht immer 500 zurückgeben. Wenn Sie einen anderen, spezifischeren Fehlercode zurückgeben, wird gemäß Ihrer web.config keine Weiterleitung gesendet. Zum Beispiel, wenn der Fehler ist, weil der Ajax einen Benutzer mit einer bestimmten ID angefordert und dieser Benutzer nicht existiert, dann zurück Fehlercode 404.


Jetzt Ihr Problem zu beheben, können Sie dies tun:

Bitte beachten Sie this Artikel für weitere Details, wenn Sie interessiert sind.

Verwandte Themen