OData WebApi 2错误处理

时间:2015-12-09 02:29:08

标签: exception-handling odata asp.net-web-api2 webapp2 odata-v4

在我的Web服务中,我重写了ExceptionHandler,但是我不清楚如何格式化异常以适应OData Error标准。也许我接近它是错误的,因为我无法在网上找到任何例子。

根据我的理解,使用web api 2有一个全局异常处理的概念,您可以使用自定义ExceptionHandler来处理服务中抛出的任何异常。仍然期望Exception使用新的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

1 个答案:

答案 0 :(得分:0)

GRANT SELECT , UPDATE , INSERT ON TABLE_NAME TO CAR;