net.tcp 升级到 windows 10 后无法正常工作

net.tcp not working since upgrading to windows 10

从 windows 8.1 升级到 windows 10 后, None 个具有可通过 net.tcp 连接使用的 WCF 服务的项目能够连接。

我得到的异常是:

The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '19:59:59.9769910'

内部异常代码为:10054

但是异常马上就发生了。所以这不是暂停。

我检查了 IIS,一切都配置正确。 (在网站上仍然有正确的绑定,启用协议 http,net.tcp)

我检查了我的服务,如果 net.tcp 侦听器适配器是 运行ning,它是。

我检查了 windows 功能,发现 windows 通信基础非 http 激活已关闭。所以我打开它并重新启动我的电脑,但仍然遇到同样的异常。

到目前为止,我总共花了 4 个小时试图让 net.tcp 连接正常工作,但我有点失去希望了。

以下是我启用的 windows 功能:

这是我拥有的 windows 服务 运行ning:

升级到 windows 10 时,其他人 运行 是否遇到过这个问题?

经过数小时的反复试验,我终于让它工作了。我不是 100% 确定这是否最终真正解决了我的问题,但试一试:

  1. 打开"Turn Windows features on or off"
  2. 取消选中 "WCF Services" 和所有基础框
  3. 重启电脑
  4. 重新检查 "TCP Activation"、"TCP Port Sharing" 下的 "WCF Services"(以及您需要的任何其他激活方法)
  5. 重启电脑

我们的服务不使用 IIS。我们有自托管的 WCF 服务。检查后

  • 命名管道
  • TCP 激活

他们终于成功了。

我们已经设法解决了这个问题。

我们在 IIS 中使用的证书采用不再受支持的旧加密方法。 (它使用的是 MD5-RSA) 现在这在 windows 8/8.1 中仍然有效,但证书在 windows 10 中不再有效,导致此行为。

解决方案是使用更好和受支持的加密算法获取新证书,并在我机器上的 IIS 中设置它们。

也很抱歉这么晚才回答!