IIS 7/WAS 上的 WCF net.tcp 端口共享

标签 wcf iis-7 net.tcp

我是 wcf 编程的新手,我一直在做一个小项目,但在 net.tcp 端口共享方面遇到了问题。我正在使用 .net Framework 4 和 iis 7。

我有两个 wcf 服务(serviceA 和 serviceB)托管在我们服务器上的 IIS 上的不同网站上。每个网站都有自己的 .svc 文件、web.config 和 bin。如果我在不同的 net.tcp 端口上拥有这些服务中的每一个,那么就没有问题,我可以从我的电脑上的 visual studio 添加对每个服务的引用。服务运行良好。

然而,我们很快就会开始一个包含更多服务的项目,我们希望避免为每个服务打开一个 tcp 端口,所以我一直在尝试让 serviceA 和 serviceB 共享端口。如果我将它们设置在同一个端口上,那么我可以访问我添加的第一个服务,但是当我尝试访问添加到同一个端口的第二个服务时,我收到以下错误:

Metadata contains a reference that cannot be resolved: 'net.tcp://myserver/serviceB.svc'. The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was **. An existing connection was forcibly closed by the remote host If the service is defined in the current solution, try building the solution and adding the service reference again.

我不知道出了什么问题。我对这个主题进行了大量搜索,并确保以下服务正在运行:

Windows 进程激活服务 Net.Tcp 端口共享服务 Net.Tcp 监听器适配器

此外,net.tcp 是网站高级设置中启用的协议(protocol)。我目前最好的猜测是它可能与我在 IIS 管理器中定义 net.tcp 绑定(bind)的方式有关。我的两个运行其独立服务的网站都具有以下内容:808:*(net.tcp) 是否正确?

正如我之前所说,如果在两个单独的端口上设置 tcp 服务运行良好,因此问题一定与端口共享有关。非常感谢任何建议

最佳答案

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

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

关于IIS 7/WAS 上的 WCF net.tcp 端口共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8531800/

相关文章:

c# - 在简单的 WCF Rest 服务中查看 JSON 输出

c# - WCF 中的证书验证

asp.net - 如何在任何给定时刻找到我的网站 (IIS7/asp.net) 的访问者/用户数量?

.net - 如何使用 net.tcp 绑定(bind)保护 WCF 通信

c# - 如何解决 "The ChannelDispatcher is unable to open its IChannelListener"错误?

asp.net-mvc-3 - 更新对象图时 Entity Framework 的断开行为

wcf - 保持 WCF 连接打开,或在每次调用时打开

iis - 当前命令用法不支持该标识符。您指定了 'testname'

php - 是否有可能使数据库像克隆一样?

c# - WCF NetTcp服务和流传输模式