【发布时间】:2012-01-21 20:09:48
【问题描述】:
我是 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 服务运行良好,因此问题必须与端口共享有关。非常感谢任何建议
【问题讨论】: