我是wcf编程的新手,我一直在研究一个小项目,并且遇到net.tcp端口共享问题。我正在使用.net框架4和iis 7。
我在IIS上的不同网站上托管了我们的服务器上的两个wcf服务(serviceA和serviceB)。每个网站都有自己的.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服务运行正常,那么问题必须与端口共享有关。非常感谢任何建议
答案 0 :(得分:3)
好的,我发现了我遇到的问题。在IIS中,我将每个服务设置为自己的网站,并试图将这些不同的网站设置为端口共享。这不起作用。
但是我发现如果我只设置一个网站,然后在网站下添加我的服务作为seaprate应用程序,那么端口共享将起作用。这种方法让我可以在一个网站下将多个服务作为应用程序。
答案 1 :(得分:0)
检查一下。 这对你有帮助。
http://himanshudesai.wordpress.com/2011/06/03/multiple-wcf-services-on-a-single-port/
希望这有帮助。