我在WebAPI的日志中收到以下错误
System.Web.HttpException(0x800703E3):客户端已断开连接。在 System.Web.Hosting.IIS7WorkerRequest.EndRead(IAsyncResult asyncResult) 在System.Web.HttpBufferlessInputStream.EndRead(IAsyncResult asyncResult)在System.Threading.Tasks.TaskFactory 1.FromAsyncTrimPromise 1.Complete(TInstance thisRef,Func 3 endMethod,IAsyncResult asyncResult,Boolean requiresSynchronization) ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在System.IO.StreamReader.d__97.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务) System.IO.StreamReader.d__62.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在Microsoft.Owin.OwinRequest.d__0.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务) Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerHandler.d__22.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务) Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerHandler.d__0.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务) Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware 1.d__0.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在Web.API.Middleware.OwinMiddleware.d__1.MoveNext() 在D:\ UAT \ Web.API \ Middleware \ OwinMiddleware.cs:第49行
如何通过异常过滤器处理和忽略这些异常?为什么会出现此错误,如何重现?我想抓住并忽略The client disconnected
而不是全部HttpException
我看到了this similar question,但我怎么能在异常过滤器中做到这一点?
答案 0 :(得分:8)
您可以忽略这些例外情况。
例外说明问题是什么:"客户端断开"。这意味着客户端发起了一个请求,但在它阅读所有响应之前就已断开连接。
为什么会出现这种情况有很多原因,但是(除非你的服务器端有一个狡猾的互联网连接),这几乎肯定是客户端的一个问题。我经常看到这些,大多数似乎与机器人有关。所以我将它们过滤掉并忽略它们。
答案 1 :(得分:-1)
try
{
// Open Connection
// Do stuff
}
catch (HttpException ex)
{
// Log it?
// Ignore it?
// Do what you want with it?
}
finally
{
// Close connection
}