gpt4 book ai didi

.net - System.Net.WebException:请求已中止:请求已取消

转载 作者:行者123 更新时间:2023-12-02 02:10:44 25 4
gpt4 key购买 nike

我有一个 WCF 服务,在负载条件下一直给我这个错误(否则我似乎无法重新创建该错误)。我们已经尝试寻找解决方法大约一周了,但没有这样的运气..

我看到的错误有两个部分,

System.ServiceModel.CommunicationException: An error: (The request was aborted: the request was cancelled.) occurred while transmitting data over the http channel.

和:

System.Net.WebException: The request was aborted: the request was cancelled.

我看到很多人建议通过重载 Reference.cs 文件中的方法并设置 KeepAlive = false 来禁用保持事件状态,但是,我们的客户端side 正在使用服务引用(除了 Web 引用之外),并且此选项不再存在。

我看到的另一个选项是向服务添加自定义 Binding,而不是我们现在使用的 BasicHttpBinding,但这会影响那些一直在使用 Web 服务的用户的向后支持webReference(因为 CustomBinding 未启用 SOAP)。

以前有人处理过这个错误吗?有没有办法在不影响服务器端的情况下禁用 WCF 中的保持事件状态?是否还有其他已知的保持事件状态会导致此错误?

最佳答案

我不认为 HTTP keep-alive 是造成这种情况的原因。 WCF 应该能够自行处理此问题,以便 HTTP 持久连接在请求之间共享,并且如果它过期(在 100s of inactivity 之后过期),WCF 将创建新连接而不引发任何异常。如果您的连接在请求传输期间中止,那么我预计还会出现其他问题。

您可以使用此自定义绑定(bind),相当于 BasicHttpBinding,无需 HTTP 保持事件状态:

<bindings>
<customBinding>
<binding name="NoKeepAlive">
<textMessageEncoding messageVersion="Soap11" />
<httpTransport keepAliveEnabled="false" />
</binding>
</customBinding>
</bindings>

关于.net - System.Net.WebException:请求已中止:请求已取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3900040/

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