是否可以在同一端口上的 HTTP 中创建另一个端点?
Posted
技术标签:
【中文标题】是否可以在同一端口上的 HTTP 中创建另一个端点?【英文标题】:Is it possible to create an other endpoint in HTTP on the same port? 【发布时间】:2020-03-18 09:36:29 【问题描述】:我的一个伙伴在特定端口上创建了一个在 Net.TCP 上工作的 C# WCF 服务,有人问我是否可以在此 WCF 服务上创建另一个端点,以便通过 HTTP 协议使用它同一个端口?
如何使用两种不同的协议 Net.TCP + HTTP 使用 WCF 服务?
感谢您的回答:)
编辑:你有关于如何在 WCF 服务中实现 HTTP + Net.TCP 端点的示例吗?
【问题讨论】:
应该可以在two TCP services 之间共享一个端口,但是当两者之一是 HTTP 侦听器时,这可能不起作用。 感谢您的回答 Wiktor Zychla。您有关于如何在 WCF 服务中实现 HTTP 端点的示例吗? 【参考方案1】:据我所知,这是完全不可能的。但是服务可以在Net.TCP+Http
上通过不同的端口号正常工作。
<services>
<service name="ConsoleApp3.TestService">
<endpoint address="" binding="netTcpBinding" contract="ConsoleApp3.ITestService" ></endpoint>
<endpoint address="http" binding="basicHttpBinding" contract="ConsoleApp3.ITestService"></endpoint>
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"></endpoint>
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:21012"/>
<add baseAddress="http://localhost:21013"/>
</baseAddresses>
</host>
</service>
</services>
Net.TCP 端口共享只适用于服务地址不同的场景,不能真正实现端口共享。 如果有什么我可以帮忙的,请随时告诉我。
【讨论】:
感谢亚伯拉罕·钱的回答。您有关于如何在 WCF 服务中实现 HTTP + Net.TCP 端点的示例吗? 以上配置适用于自托管WCF服务(控制台应用)。对于托管在 IIS 中的服务,只需从默认 WCF 项目模板中的 WebConfig 中删除上述配置中的基地址,然后在 IIS 站点绑定模块中添加 Http 绑定和 Net.tcp 绑定。以上是关于是否可以在同一端口上的 HTTP 中创建另一个端点?的主要内容,如果未能解决你的问题,请参考以下文章
WCF 和 REST 应用程序在同一端口上使用不同的端点,可以吗?