Asp.net web api 为WCF REST和ASP.NET Web API共享同一端口

Asp.net web api 为WCF REST和ASP.NET Web API共享同一端口,asp.net-web-api,wcf-rest,webhttpbinding,Asp.net Web Api,Wcf Rest,Webhttpbinding,我已经使用WCF webhttpbinding实现了一个现有的基于JSON的服务。此服务托管在Windows服务中。我们还实现了SSL。现在,我计划使用ASP.NETWebAPI创建新的基于JSON的服务,该服务应该托管在windows服务中。但问题是客户端位于防火墙之后,它们无法向世界公开许多端口,因此我必须重用已经打开的端口。我知道这是不可能的但是我们是否可以使用相同的端口来处理WCF REST和ASP.NET Web API的请求? 编辑:我不想为此创建任何附加端口。只要路径不同,WCF

我已经使用WCF webhttpbinding实现了一个现有的基于JSON的服务。此服务托管在Windows服务中。我们还实现了SSL。现在,我计划使用ASP.NETWebAPI创建新的基于JSON的服务,该服务应该托管在windows服务中。但问题是客户端位于防火墙之后,它们无法向世界公开许多端口,因此我必须重用已经打开的端口。我知道这是不可能的但是我们是否可以使用相同的端口来处理WCF REST和ASP.NET Web API的请求?


编辑:我不想为此创建任何附加端口。

只要路径不同,WCF REST和Web API都可以共享同一端口

比如说,

// Starting WCF service in port 13375 (Running in Process 1)
ServiceHost wcfServiceHost = new ServiceHost(typeof(StaffIntegrationService));
wcfServiceHost.addServiceEndPoint(typeof(IStaffIntegrationService), webHttpBinding, “http://localhost:13375/wcf”);
wcfServiceHost.open();


// Start WebAPI in 13375 (Running in Process 2)
using (WebApp.Start<Startup>(url: “http://localhost:13375/api”))
{
   Console.WriteLine(“Service is started”);
}
//在端口13375中启动WCF服务(在进程1中运行)
ServiceHost wcfServiceHost=新的ServiceHost(类型为(StaffIntegrationService));
wcfServiceHost.addServiceEndPoint(类型为(IStaffinitionService),webHttpBinding,“http://localhost:13375/wcf”);
wcfServiceHost.open();
//在13375中启动WebAPI(在进程2中运行)
使用(WebApp.Start)(url:)http://localhost:13375/api”))
{
Console.WriteLine(“服务已启动”);
}
WCF和Web API都成功运行并在端口13375侦听。在引擎盖下,此端口共享由HTTP.SYS模块负责