Exception handling ODataWebAPI 2错误处理

Exception handling ODataWebAPI 2错误处理,exception-handling,odata,asp.net-web-api2,webapp2,odata-v4,Exception Handling,Odata,Asp.net Web Api2,Webapp2,Odata V4,在我的web服务中,我重写了ExceptionHandler,但我不清楚如何格式化异常以符合OData错误标准。也许我的做法是错误的,因为我在网上找不到任何例子 据我所知,在WebAPI2中有一个全局异常处理的概念,即使用自定义异常处理程序来处理服务中抛出的任何异常。异常仍应使用新的IHttpActionResult()更新ExceptionContext.Result。如何将输入到IHttpActionResult的数据格式化为OData Error 下面是ExceptionHandler的一

在我的web服务中,我重写了ExceptionHandler,但我不清楚如何格式化异常以符合OData错误标准。也许我的做法是错误的,因为我在网上找不到任何例子

据我所知,在WebAPI2中有一个全局异常处理的概念,即使用自定义异常处理程序来处理服务中抛出的任何异常。异常仍应使用新的IHttpActionResult()更新ExceptionContext.Result。如何将输入到IHttpActionResult的数据格式化为OData Error

下面是ExceptionHandler的一个片段,我一直想知道如何用正确的OData HttpResponse消息覆盖context.Result

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

您能找到解决方案吗?任何提示都将不胜感激。谢谢,教授,我还没想好。当我这样做的时候,我会更新这个。
context.Result = new System.Web.Http.Results.ResponseMessageResult(msg);