Asp.NET Web API"操作被取消。"例外

时间:2015-03-13 19:04:21

标签: c# rest asp.net-web-api exception-handling

我正在使用Web API来处理使用FilterAttribute发生的任何异常。

在WebApiConfig.cs文件中,它已注册:

  config.Filters.Add(new ExceptionHandlerAttribute());

它正常工作,每当引发未处理的异常时,它就会进入filter属性OnException方法:

public class ExceptionHandlerAttribute : ExceptionFilterAttribute
{
    public override void OnException(HttpActionExecutedContext context)
    {(...)}
}

现在,我有一个客户端应用程序,故意调用API超时非常小。 似乎每次超时都到期,它会以某种方式影响服务器,并在FilterAttribute中捕获以下异常:

context: System.Web.Http.Controllers.HttpActionContext
"The operation was canceled."

at System.Threading.CancellationToken.ThrowOperationCanceledException()
at System.Threading.CancellationToken.ThrowIfCancellationRequested()
at System.Net.Http.HttpContentExtensions.<ReadAsAsyncCore>d__0`1.MoveNext()

堆栈跟踪不会在服务器项目中显示任何代码行。 似乎当客户端调用被取消时,它会在服务器端引发此异常?这是预期的异常/行为吗?

如果是预期的话,我只需要忽略被取消的客户呼叫引发的这种异常吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

当您尝试在操作完成之前取消操作时,会发生此问题。调试代码,看看是否有任何webAPI方法被调用但未完成。希望这会有所帮助。