Arb*_*tel 13 .net asp.net azure asp.net-core
我们有一个 .NET WorkerService 在后台运行,等待事件中心的触发器将数据推送到 API Web 服务,但我们遇到了以下问题:
\n有什么想法可能导致这种情况吗?
\n\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8bExceptionSource: "System.Net.Http", ExceptionType: "System.Threading.Tasks.TaskCanceledException: The operation was canceled. \n\nSystem.IO.IOException: Unable to read data from the transport connection: Operation canceled.\n\nSystem.Net.Sockets.SocketException (125): Operation canceled \n\nEnd of inner exception stack trace --- \nat System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) \nat System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token) \nat System.Net.Security.SslStream.<FillBufferAsync>g__InternalFillBufferAsync|215_0[TReadAdapter](TReadAdapter adap, ValueTask`1 task, Int32 min, Int32 initial) \nat System.Net.Security.SslStream.ReadAsyncInternal[TReadAdapter](TReadAdapter adapter, Memory`1 buffer) \nat System.Net.Http.HttpConnection.FillAsync() \nat System.Net.Http.HttpConnection.ReadNextResponseHeaderLineAsync(Boolean foldedHeadersAllowed) \nat System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken) \n\n--- End of inner exception stack trace --- \nat System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken) \nat System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken) \nat System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken) \nat System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) \nat System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) \nat Client.MyClient.UpdateAsync(DataRequestUpdate DataRequest, CancellationToken cancellationToken) in /src/Client/Client.cs:line 1232 \nat Client.Repository.Update(Request data) in /src/Client/Repository.cs:line 32 \nat WorkerService.EventProcessor.Update(UpdateRequest request) in /src/WorkerService/EventProcessor.cs:line 390", Message: "The operation was canceled." }\xe2\x80\x8b\nRun Code Online (Sandbox Code Playgroud)\n
Arb*_*tel 20
默认的 .NET httpclient 超时是100 秒。如果你的客户端花费的时间超过100秒,就会导致上述错误。要解决这个问题,只需增加超时值即可。
HttpClient httpClient = new HttpClient();
httpClient.Timeout = TimeSpan.FromMinutes(10); //Eg. 10mins timeout
Run Code Online (Sandbox Code Playgroud)