public async override Task HandleAsync(ExceptionHandlerContext context, CancellationToken cancellationToken)
{
// Access Exception using context.Exception;
Logger.Error(context.Exception.ToString() + Environment.NewLine);
const string errorMessage = "An unexpected error occured";
var response = context.Request.CreateResponse(HttpStatusCode.InternalServerError,
new
{
Message = errorMessage
});
response.Headers.Add("X-Error", errorMessage);
context.Result = new ResponseMessageResult(response);
}
我在Web Api 2中使用上面的代码进行全局异常处理。上面的代码返回以下警告消息。怎么解决这个问题?
这种异步方法缺乏等待'运营商并将同步运行。考虑使用' await'运营商等待非阻塞API调用,或等待Task.Run(...)'在后台线程上进行CPU绑定工作
答案 0 :(得分:2)
如果您没有任何异步工作要做,请不要使用async
:
public override Task HandleAsync(ExceptionHandlerContext context, CancellationToken cancellationToken)
{
// Access Exception using context.Exception;
Logger.Error(context.Exception.ToString() + Environment.NewLine);
...
context.Result = new ResponseMessageResult(response);
return Task.CompletedTask;
}