WCF和REST应用程序在同一端口上使用不同的端点,可以吗?

问题描述 投票:0回答:1

我有一个在端口XXX3上运行了多年的WCF应用程序(应用程序A),现在我已经创建了同一应用程序(应用程序B)的RESTful版本。我最初想在端口XXX4上设置应用B,但我必须处理阻止端口的公司安全策略。

如果我在端口XXX3上运行应用程序B,它似乎可以正常运行,并且应用程序A也似乎没有任何问题。

我一直给人印象,一个给定的应用程序应该使用其自己的端口...因此,我担心如果在同一端口上,应用程序A和B之间会发生冲突。我应该担心冲突还是这不是问题?我阅读的所有内容似乎也表明它们应该位于不同的端口上。

最后一条信息...由于应用程序A是WCF,而应用程序B是.NET Core Web API应用程序,它们都使用不同的端点,因此我怀疑这就是为什么似乎没有任何冲突的原因。端点本身确定端口数据的路由位置吗?任何人都可以给出一个简单的网络解释,以解释为什么它似乎在同一个端口上与他们一起工作,并且可以以这种方式运行吗?

c# rest wcf windows-services asp.net-core-webapi
1个回答
0
投票

WCF和REST应用程序在同一端口上使用不同的端点,可以吗?

TL; DR:是。

我一直给人印象,给定的应用程序应该使用其自己的端口

通常是。

我应该担心冲突还是这不是问题?否。IIS中托管的WCF应用程序现在可以共享端口。 (下)

当通过IIS托管时,WCF应用程序现在可以共享sometime的端口。

这是MSDN has to say(我的重点):

跨多个HTTP应用程序共享端口的能力长期以来一直是Internet信息服务(IIS)的功能。但是,只有在IIS 6.0中引入HTTP.SYS(内核模式HTTP协议侦听器)后,该基础结构才被完全推广。实际上,专用于HTTP流量的HTTP.SYS 允许任意用户进程共享TCP端口。此功能允许许多HTTP应用程序在单独的隔离进程中的[[同一物理机]]上共存,同时共享通过TCP端口80发送和接收流量所需的网络基础结构。Net.TCP端口共享服务启用相同类型的net.tcp应用程序的端口共享。

与此同时,.NET Core应用程序也可以通过HTTP.sys(ASP.NET Core中的Web服务器实现)通过TCP端口共享受益。

MSDN

HTTP.sys是ASP.NET Core的Web服务器,仅在Windows上运行。

HTTP.sys支持以下功能:

    Windows身份验证
  • 端口共享
  • ...
OP

最后一条信息...由于应用程序A是WCF,应用程序B是.NET Core Web API应用程序,它们都使用不同的终结点,所以我怀疑这就是为什么似乎没有任何冲突的原因] >

它们可能具有两个不同的逻辑端点,但是两者都可以通过公共HTTP.SYS共享TCP 80。与IIS中托管的所有共享http://xxx:80/<service-suffix>的多个WCF应用程序没有什么不同。

© www.soinside.com 2019 - 2024. All rights reserved.