Node.js 在同一端口上本地托管Web服务器和Web服务

Node.js 在同一端口上本地托管Web服务器和Web服务,node.js,asp.net-web-api,localhost,hosting,gulp,Node.js,Asp.net Web Api,Localhost,Hosting,Gulp,我似乎错过了一些非常明显的事情。 无论如何,我正在开发一个ReactJs web应用程序,并使用nodejs(浏览器同步)来托管一个简单的web服务器,以便在localhost上进行测试。一切正常 至于服务器端,我有一个托管在ASP.NETWebAPI中的REST服务 出于部署的原因,我希望将web应用程序中的URL保持相对位置(因为这样一来,主机名是什么并不重要,只要它在同一个域上运行) 根据经验,我知道可以在IIS Express中同时托管自托管ASP.NET WebAPI和Web应用程序(

我似乎错过了一些非常明显的事情。 无论如何,我正在开发一个ReactJs web应用程序,并使用nodejs(浏览器同步)来托管一个简单的web服务器,以便在localhost上进行测试。一切正常

至于服务器端,我有一个托管在ASP.NETWebAPI中的REST服务

出于部署的原因,我希望将web应用程序中的URL保持相对位置(因为这样一来,主机名是什么并不重要,只要它在同一个域上运行)

根据经验,我知道可以在IIS Express中同时托管自托管ASP.NET WebAPI和Web应用程序(至少在不同路径中)

但现在,当我启动浏览器同步(据我所知,它在内部使用节点http服务器),然后启动WebAPI服务主机时,服务主机告诉我它不能在此url上托管

当我以另一种方式启动它时,浏览器同步会自动增加端口,使其位于下一个可用端口

有人有这方面的经验吗

编辑:


我的问题可能是更一般的:如何针对本地运行的web服务开发托管在本地web服务器(在我的例子中是通过nodejs)上的web应用程序?您在web应用程序中使用相对URL吗?这导致了服务和web必须在同一台服务器上运行的问题

我这样解决了我的问题:

  • ASP.NET WebAPI主机位于不同的端口下,而不是nodejs web服务器
  • 我在nodejs webserver中为所有以“/api/”开头的URL设置了一个代理,并将这些请求代理到WebAPI端口
  • 我可以在我的客户端中使用相对URL

如果8080是您想要浏览站点的端口,而8081是您的API web服务器正在运行的站点,那么这就是使用http服务器仅为静态文件提供服务的方式:
http server-o-p 8080-phttp://localhost:8081/