3

我是 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 服务运行良好,因此问题必须与端口共享有关。非常感谢任何建议

4

2 回答 2

3

好的,我发现了我遇到的问题。在 IIS 中,我将每个服务设置为自己的网站,并试图让这些不同的网站进行端口共享。这是行不通的。

但是我发现,如果我只设置一个网站,然后将我的服务添加为网站下的独立应用程序,那么端口共享将起作用。这种方法让我在一个网站下拥有多个服务作为应用程序。

于 2011-12-20T11:21:25.247 回答
0

检查这个。这可能对您有所帮助。

http://himanshudesai.wordpress.com/2011/06/03/multiple-wcf-services-on-a-single-port/

希望这可以帮助。

于 2011-12-16T20:58:48.493 回答