- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个用 C# 编写的 Winforms 应用程序,它使用来自 Windows 2008 IIS Coldfusion 服务器的 Web 服务。所有 Web 服务调用都成功,只有一个调用失败,大约 50% 的时间会出现以下错误:
System.InvalidOperationException 未被用户代码处理 Message=XML 文档中存在错误 (1254, 7)。
有一个内部异常(exception):
内部异常:System.IO.IOException Message=无法从传输连接读取数据:远程主机强行关闭了现有连接。
我检查了我的 IIS 日志,我收到 503 错误(服务不可用)和 64 的 IIS 代码(指定的网络不再可用)。任何建议都会很棒。
我在 SOAP UI 中运行我的 Web 服务,但出现以下错误:
javax.net.ssl.SSLException:连接已关闭:javax.net.ssl.SSLException:java.net.SocketException:连接重置
此代码在一家公司工作正常,但对于我目前正在工作的这家公司,几乎每次都会弹出此错误。
最佳答案
我不确定这是否适用于 OP 的具体情况,但这可能会帮助现在来到这里的其他人。此异常的一个潜在原因涉及不匹配的安全协议(protocol)。如果您调用的服务器需要 TLS 1.2 并且您使用的是旧版本的 ASP.net(<= 版本 4.0),除非您更改它,否则您将使用旧的安全协议(protocol)进行调用。您可以强制 ASP.net 使用 TLS 1.2(如下所示)。这可以在应用程序的任何位置完成,但我将它放在调用需要 TLS 1.2 的 Web 服务的行之前:
using System.Net;
...
//Enable TLS 1.2
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
// Call the Web Service that requires TLS 1.2
关于c# - 使用 Web 服务时出错 : An existing connection was forcibly closed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9117628/
我是一名优秀的程序员,十分优秀!