gpt4 book ai didi

vb.net - 现有连接被远程主机强行关闭

转载 作者:行者123 更新时间:2023-12-04 04:08:28 26 4
gpt4 key购买 nike

我有一个胖 VB.NET Winform 客户端,它使用旧的 asmx 样式 Web 服务。很多时候,当我执行需要一段时间的查询或将大量数据传递给数据集中的 Web 服务时,我会收到主题错误。

该错误似乎发生在 < 1 分钟内,这远小于我设置的 Web 服务超时值或在 Web 服务器内执行查询的 ADO 命令对象上的超时值。

每当我执行希望返回大量行的大型查询时,或者当我向 Web 服务发送大量数据时,似乎都会发生这种情况。例如,当我将一个大数据集传递给 Web 服务器时,它就发生了:

System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
--- End of inner exception stack trace ---
at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Smit.Pipeline.Bo.localhost.WsSR.SaveOptions(String emailId, DataSet dsNeighborhood, DataSet dsOption, DataSet dsTaskApplications, DataSet dsCcUsers, DataSet dsDistinctUsers, DataSet dsReferencedApplications) in C:\My\Code\Pipeline2\Smit.Pipeline.Bo\Web References\localhost\Reference.vb:line 944
at Smit.Pipeline.Bo.Options.Save(TaskApplications updatedTaskApplications) in

我一直在查看有关此错误的大量帖子,令人惊讶的是导致此错误的情况多种多样。我试过弄乱 Wireshark,但我不知道如何使用它。

这个应用程序在任何时候只有大约 20 个用户,我能够在可能没有人使用该应用程序的半夜重现这个错误,所以我不认为对 Web 服务器的请求数量或到数据库高。我可能是现在唯一使用该应用程序的人,但我现在刚刚收到错误消息。它似乎必须处理向任一方向传递的大量数据。

这个错误真的是慢性的,让我丧命。请帮忙。

最佳答案

我遇到了完全相同的问题。 Web 服务调用会因相同的间歇性异常而失败(大约每天一次)。它与太大的数据包大小或太小的超时无关。

我最终只是放入了一些解决了这个问题的重试逻辑。
见:How can I improve this exception retry scenario?

关于vb.net - 现有连接被远程主机强行关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2862817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com