【问题标题】:Asp.NET Web API "The operation was canceled." exceptionAsp.NET Web API“操作已取消。”例外
【发布时间】:2015-05-16 09:31:23
【问题描述】:

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

在WebApiConfig.cs文件中注册:

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

它可以正常工作,并且每当引发未处理的异常时,它都会进入过滤器属性 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()

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

如果是预期的,我只需要忽略取消的客户端调用引发的这种异常吗?

提前致谢。

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 这就像泥巴一样清晰。究竟是什么试图“取消”操作?如果是 webapi 调用,调用是由什么或谁发起并取消的?
猜你喜欢
  • 2012-04-03
  • 1970-01-01
  • 2017-05-12
  • 1970-01-01
  • 2014-10-02
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多