5

В моем веб-сервисе я переопределяю ExceptionHandler, но мне непонятно, как вы форматируете исключение, чтобы соответствовать стандарту OData Error. Возможно, я подхожу к этому неправильно, так как я не могу найти примеры в Интернете.OData WebApi 2 Обработка ошибок

С моей точки зрения, с помощью web api 2 существует концепция обработки глобальных исключений, в которой вы используете пользовательский ExceptionHandler для обработки любых исключений, вызванных службой. Ожидается, что Exception обновит ExceptionContext.Result новым IHttpActionResult(). Как вы форматируете данные, введенные в IHttpActionResult, для форматирования в OData Error.

Ниже приведен фрагмент ExceptionHandler, и я зациклен на том, как вы переопределяете контекст. Вернитесь с правильным сообщением OData HttpResponse.

public class CustomExceptionHandler: ExceptionHandler 
{ 
    public override void Handle(ExceptionHandlerContext context) 
    { 
     HttpResponseMessage msg = context.Request.CreateErrorResponse(HttpStatusCode.NotFound, new ODataError 
     { 
      ErrorCode = context.Exception.Message, 
      Message = context.Exception.InnerException.Message, 
      InnerError = new ODataInnerError 
      { 
       Message = context.Exception.InnerException.Message 
      } 
     }); 
     context.Result = //How do you wrap the OData HttpResponseMessage into a IHttpActionResult 

    } 


} 

Любые консультации Оценил, Спасибо, D

+0

вы смогли найти решение для этого? Любые советы приветствуются. Спасибо –

+0

Извините, я не вернулась к этому. Когда я это сделаю, я обновлю это. – darewreck

ответ

0
context.Result = new System.Web.Http.Results.ResponseMessageResult(msg); 
Смежные вопросы