.net core .NET Core 3.1 Websocket错误:指定的网络名称不再可用 Microsoft.AspNetCore.Connections.ConnectionResetException:客户端已断开连接 --->System.Runtime.InteropServices.COMException(0x80070040):指定的网络名称不再可用。(0x80070040) ---内部异常堆栈跟踪的结束--- 位于Microsoft.AspNetCore.Server.IIS.Core.IO.AsyncIOOperation.GetResult(Int16令牌) 在Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.ReadBody()上 在System.IO.Pipelines.PipeCompletion.ThrowLatchedException()中 at System.IO.Pipelines.Pipe.GetReadResult(ReadResult&result) 位于System.IO.Pipelines.Pipe.ReadAsync(CancellationToken令牌) 位于System.IO.Pipelines.Pipe.DefaultPipeReader.ReadAsync(CancellationToken CancellationToken) 位于Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.ReadAsync(内存`1内存,取消令牌取消令牌) 位于Microsoft.AspNetCore.Server.IIS.Core.HttpRequestStream.ReadAsyncInternal(内存`1缓冲区,CancellationToken CancellationToken) 位于Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.ReadAsync(字节[]缓冲区、Int32偏移量、Int32计数、CancellationToken CancellationToken) 在Microsoft.AspNetCore.WebUtilities.StreamHelperExtensions.DrainAsync(Stream Stream,ArrayPool`1 bytePool,Nullable`1 limit,CancellationToken CancellationToken) 位于Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter.ReadRequestBodyAsync(InputFormatterContext,Encoding) 位于Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder.BindModelAsync(ModelBindingContext绑定上下文) 位于Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.BindModelAsync(ActionContext ActionContext、IModelBinder modelBinder、IValueProvider valueProvider、ParameterDescriptor参数、ModelMetadata元数据、对象值) 在Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegateProvider.c_uuDisplayClass0_0.d.MoveNext()中 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g_u等待| 13_0(ControllerActionInvoker invoker,Task lastTask,State next,Scope Scope,Object State,Boolean isCompleted) 在Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g_|19_0(ResourceInvoker invoker、Task lastTask、State next、Scope Scope、Object State、Boolean isCompleted) 在Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g|u waiting | 17|0(ResourceInvoker invoker,Task Task,IDisposable作用域) 位于Microsoft.AspNetCore.Routing.EndpointMiddleware.g_uwaitRequestTask | 6_0(端点、任务请求任务、ILogger记录器) 在MyApp.Utility.Extensions.c.d.MoveNext()中 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g|u waiting|6|0(ExceptionHandlerMiddleware中间件,HttpContext上下文,任务任务)

.net core .NET Core 3.1 Websocket错误:指定的网络名称不再可用 Microsoft.AspNetCore.Connections.ConnectionResetException:客户端已断开连接 --->System.Runtime.InteropServices.COMException(0x80070040):指定的网络名称不再可用。(0x80070040) ---内部异常堆栈跟踪的结束--- 位于Microsoft.AspNetCore.Server.IIS.Core.IO.AsyncIOOperation.GetResult(Int16令牌) 在Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.ReadBody()上 在System.IO.Pipelines.PipeCompletion.ThrowLatchedException()中 at System.IO.Pipelines.Pipe.GetReadResult(ReadResult&result) 位于System.IO.Pipelines.Pipe.ReadAsync(CancellationToken令牌) 位于System.IO.Pipelines.Pipe.DefaultPipeReader.ReadAsync(CancellationToken CancellationToken) 位于Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.ReadAsync(内存`1内存,取消令牌取消令牌) 位于Microsoft.AspNetCore.Server.IIS.Core.HttpRequestStream.ReadAsyncInternal(内存`1缓冲区,CancellationToken CancellationToken) 位于Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.ReadAsync(字节[]缓冲区、Int32偏移量、Int32计数、CancellationToken CancellationToken) 在Microsoft.AspNetCore.WebUtilities.StreamHelperExtensions.DrainAsync(Stream Stream,ArrayPool`1 bytePool,Nullable`1 limit,CancellationToken CancellationToken) 位于Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter.ReadRequestBodyAsync(InputFormatterContext,Encoding) 位于Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder.BindModelAsync(ModelBindingContext绑定上下文) 位于Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.BindModelAsync(ActionContext ActionContext、IModelBinder modelBinder、IValueProvider valueProvider、ParameterDescriptor参数、ModelMetadata元数据、对象值) 在Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegateProvider.c_uuDisplayClass0_0.d.MoveNext()中 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g_u等待| 13_0(ControllerActionInvoker invoker,Task lastTask,State next,Scope Scope,Object State,Boolean isCompleted) 在Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g_|19_0(ResourceInvoker invoker、Task lastTask、State next、Scope Scope、Object State、Boolean isCompleted) 在Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g|u waiting | 17|0(ResourceInvoker invoker,Task Task,IDisposable作用域) 位于Microsoft.AspNetCore.Routing.EndpointMiddleware.g_uwaitRequestTask | 6_0(端点、任务请求任务、ILogger记录器) 在MyApp.Utility.Extensions.c.d.MoveNext()中 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g|u waiting|6|0(ExceptionHandlerMiddleware中间件,HttpContext上下文,任务任务),.net-core,websocket,.net Core,Websocket,我有一些客户抱怨使用websocket与我的Web服务断开连接。他们正在使用JS Angular客户端进行连接。我有逻辑客户端,可以在出现故障时重新连接,但客户报告从未这样做过,或者他们可以看到多次尝试并失败。此错误是否表示客户端断开连接是由客户端造成的?有什么办法可以确定吗?我已经从这本书中摘取了,因为它解决了我的问题,但那篇文章不容易找到 问题是一些长时间运行的查询,平均需要20秒,但有时需要70秒,这比默认超时时间长,因此引发了异常 用于长时间运行的查询 为连接到SQL Server的应用

我有一些客户抱怨使用websocket与我的Web服务断开连接。他们正在使用JS Angular客户端进行连接。我有逻辑客户端,可以在出现故障时重新连接,但客户报告从未这样做过,或者他们可以看到多次尝试并失败。此错误是否表示客户端断开连接是由客户端造成的?有什么办法可以确定吗?

我已经从这本书中摘取了,因为它解决了我的问题,但那篇文章不容易找到

问题是一些长时间运行的查询,平均需要20秒,但有时需要70秒,这比默认超时时间长,因此引发了异常

用于长时间运行的查询

为连接到SQL Server的应用程序连接字符串实现更长的命令超时值

范例

Microsoft.AspNetCore.Connections.ConnectionResetException: The client has disconnected
 ---> System.Runtime.InteropServices.COMException (0x80070040): The specified network name is no longer available. (0x80070040)
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Server.IIS.Core.IO.AsyncIOOperation.GetResult(Int16 token)
   at Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.ReadBody()
   at System.IO.Pipelines.PipeCompletion.ThrowLatchedException()
   at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result)
   at System.IO.Pipelines.Pipe.ReadAsync(CancellationToken token)
   at System.IO.Pipelines.Pipe.DefaultPipeReader.ReadAsync(CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.ReadAsync(Memory`1 memory, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.IIS.Core.HttpRequestStream.ReadAsyncInternal(Memory`1 buffer, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.WebUtilities.StreamHelperExtensions.DrainAsync(Stream stream, ArrayPool`1 bytePool, Nullable`1 limit, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter.ReadRequestBodyAsync(InputFormatterContext context, Encoding encoding)
   at Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder.BindModelAsync(ModelBindingContext bindingContext)
   at Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.BindModelAsync(ActionContext actionContext, IModelBinder modelBinder, IValueProvider valueProvider, ParameterDescriptor parameter, ModelMetadata metadata, Object value)
   at Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegateProvider.<>c__DisplayClass0_0.<<CreateBinderDelegate>g__Bind|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at MyApp.Utility.Extensions.<>c.<<UseMyAppSocket>b__0_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
例如:

SQLServerIPAddress SQLServerName
这样,SQL Server名称将由主机文件解析,直到您能够找到名称解析的真正问题

通过命令行从应用服务器ping SQL框,确保并测试hosts文件。或者,在控制面板中使用ODBC管理员创建一个DSN,并在那里测试连接。

我从中摘取了这篇文章,因为它解决了我的问题,但那篇文章不容易找到

问题是一些长时间运行的查询,平均需要20秒,但有时需要70秒,这比默认超时时间长,因此引发了异常

用于长时间运行的查询

为连接到SQL Server的应用程序连接字符串实现更长的命令超时值

范例

Microsoft.AspNetCore.Connections.ConnectionResetException: The client has disconnected
 ---> System.Runtime.InteropServices.COMException (0x80070040): The specified network name is no longer available. (0x80070040)
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Server.IIS.Core.IO.AsyncIOOperation.GetResult(Int16 token)
   at Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.ReadBody()
   at System.IO.Pipelines.PipeCompletion.ThrowLatchedException()
   at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result)
   at System.IO.Pipelines.Pipe.ReadAsync(CancellationToken token)
   at System.IO.Pipelines.Pipe.DefaultPipeReader.ReadAsync(CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.ReadAsync(Memory`1 memory, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.IIS.Core.HttpRequestStream.ReadAsyncInternal(Memory`1 buffer, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.WebUtilities.StreamHelperExtensions.DrainAsync(Stream stream, ArrayPool`1 bytePool, Nullable`1 limit, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter.ReadRequestBodyAsync(InputFormatterContext context, Encoding encoding)
   at Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder.BindModelAsync(ModelBindingContext bindingContext)
   at Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.BindModelAsync(ActionContext actionContext, IModelBinder modelBinder, IValueProvider valueProvider, ParameterDescriptor parameter, ModelMetadata metadata, Object value)
   at Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegateProvider.<>c__DisplayClass0_0.<<CreateBinderDelegate>g__Bind|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at MyApp.Utility.Extensions.<>c.<<UseMyAppSocket>b__0_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
例如:

SQLServerIPAddress SQLServerName
这样,SQL Server名称将由主机文件解析,直到您能够找到名称解析的真正问题


通过命令行从应用服务器ping SQL框,确保并测试hosts文件。或者,在控制面板中使用ODBC管理员创建一个DSN,并在那里测试连接。

Hi@Mike\G,您解决过这个问题吗。我在刚刚发布的ASP.NETCore3.1网站上也遇到了这个错误。同上。在性能测试期间,在几分钟的GET请求后,在每个请求上记录httpcontext变量,出现相同的异常。使用NetCore3.1。有没有弄清楚这件事,迈克?Thanks@danwag,抱歉反应太晚,伙计们。简言之,不,我一直没能弄明白。@user70267它不允许我通知你们两个,所以我的名字似乎在上面comment@Mike_G,谢谢你的回复。似乎是Windows的问题,可能是因为网络没有管理流量。我读到的一件事表明这可能是DNS问题,因此将IP地址添加到主机文件,或者对于长时间运行的查询,增加appsettings连接字符串的超时。过几天我要试试这些东西。嗨,迈克,你解决过这个问题吗。我也有这个错误