我有一个在端口XXX3上运行了多年的WCF应用程序(应用程序A),现在我已经创建了同一应用程序(应用程序B)的RESTful版本。我最初想在端口XXX4上设置应用B,但我必须处理阻止端口的公司安全策略。
如果我在端口XXX3上运行应用程序B,它似乎可以正常运行,并且应用程序A也似乎没有任何问题。
我一直给人印象,一个给定的应用程序应该使用其自己的端口...因此,我担心如果在同一端口上,应用程序A和B之间会发生冲突。我应该担心冲突还是这不是问题?我阅读的所有内容似乎也表明它们应该位于不同的端口上。
最后一条信息...由于应用程序A是WCF,而应用程序B是.NET Core Web API应用程序,它们都使用不同的端点,因此我怀疑这就是为什么似乎没有任何冲突的原因。端点本身确定端口数据的路由位置吗?任何人都可以给出一个简单的网络解释,以解释为什么它似乎在同一个端口上与他们一起工作,并且可以以这种方式运行吗?
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应用程序没有什么不同。