我是 wcf 编程的新手,我一直在做一个小项目,但在 net.tcp 端口共享方面遇到了问题。我正在使用 .net 框架 4 和 iis 7。
我有两个 wcf 服务(serviceA 和 serviceB)托管在我们的服务器上,位于 IIS 上的不同网站中。每个网站都有自己的 .svc 文件、web.config 和 bin。如果我在不同的 net.tcp 端口上拥有这些服务中的每一个,那么就没有问题,我可以从我的电脑上的 Visual Studio 中为它们中的每一个添加服务引用。服务运行良好。
然而,我们很快就会开始一个包含更多服务的项目,我们希望避免为每个服务打开一个 tcp 端口,所以我一直在尝试让 serviceA 和 serviceB 共享端口。如果我将它们设置在同一个端口上,那么我可以访问我添加的第一个服务,但是当我尝试访问添加到同一个端口的第二个服务时,我收到以下错误:
元数据包含无法解析的引用:“net.tcp:// myserver /serviceB.svc”。套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题引起的。本地套接字超时为**。远程主机强行关闭现有连接如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
我无法弄清楚出了什么问题。我对该主题进行了大量搜索,并确保以下服务正在运行:
Windows 进程激活服务 Net.Tcp 端口共享服务 Net.Tcp 侦听器适配器
此外,net.tcp 是网站高级设置中启用的协议。我目前最好的猜测是它可能与我在 IIS 管理器中定义 net.tcp 绑定的方式有关。我的两个运行其独立服务的网站都具有以下内容: 808:*(net.tcp) 这是正确的吗?
正如我之前所说,如果在两个单独的端口上设置 tcp 服务运行良好,因此问题必须与端口共享有关。非常感谢任何建议