网络传输控制协议 (net.tcp) 服务无法使用该地址的协议。

14
我们的应用程序托管在IIS 7.0上,通过net.tcp协议公开端点。但我们一直遇到以下异常:

EndpointNotFoundException: 由于地址所使用的协议与服务端点地址“net.tcp://localhost/xxx/service.svc”不可用,消息无法分派。

我们已经检查了以下可能引起问题的地方。
  • Windows进程激活服务运行正常
  • Net.Tcp监听器适配器服务正常。
  • Net.Tcp端口共享服务正常。
  • 我们为Web应用程序进行了net.tcp绑定。
  • 如下所示,启用了Web应用程序的net.tcp协议。 net.tcp protocol is enabled
我尝试在检查了以上所有地方后重置IIS。仍然不工作。
这真的让我失望。希望有人能给我一些提示。
我已经搜索了很多。似乎这是一个非常普遍的问题,还没有得到完美解决。我想是时候结束这种痛苦了。
非常感谢!
1个回答

5

很难说,但是你尝试连接的端口是什么?

确保该端口可用且没有其他程序在使用。

如果您正在使用代理,请添加以下内容:

......
 <httpTransport
      maxBufferPoolSize="4194304"
      maxBufferSize="1048576"
      maxReceivedMessageSize="1048576"
      proxyAddress="http://127.0.0.1.:8888
      useDefaultWebProxy="false"
    />
  </binding>
</customBinding>

根据异常信息,似乎net.tcp协议没有正常工作。不过谢谢,我会检查我的防火墙端口号。 - smwikipedia
2
我重新阅读了你的回答。是的,另一个网站的绑定正在使用相同的net.tcp端口。但很奇怪,该站点已经停止,并且应用程序池也已停止。这与HTTP的体验非常不同,在HTTP中,只要只有一个在线,我就可以在多个网站之间共享80端口。在我删除了其他net.tcp绑定或将其更改为不同的端口后。然后重置IIS。出问题的服务就可以正常工作。请注意,必须重置IIS。 - smwikipedia
我很好奇为什么HTTP和net.tcp协议的行为如此不同。这是因为HTTP协议受IIS控制,而net.tcp协议不受其控制(我不确定谁控制它,也许是Windows进程激活服务)。这两个协议的控制方式不同。 - smwikipedia
希望其他人可以进一步确认此事,因为你提醒了我另一个使用相同 net.tcp 端口的网站,所以我很快会标记你的答案。 - smwikipedia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接