使用Azure App Services在指定的PORT上承载nodeJS net.Server

对于类项目,我试图使用Azure应用程序服务在数字端口上公开简单的node.js TCP服务。 该服务将被Java TCP客户端应用程序使用。 我已经尝试过这样做,所以使用“Web Apps”服务,但显然IIS会将我的node.js应用程序托pipe在命名pipe道上,以便node.js具有process.env.PORT = "\\.\pipe\(guid...)"而不是我尝试的任何端口 。 其他Azure应用程序服务是否适合托pipe具有net.Server的TCP服务? net.Server listen用户定义的端口号吗? 如果是这样的话,哪个App Service为什么?

不幸的是,我所拥有的DreamSpark Azure订阅不包含虚拟机,因此,将node.JS应用程序部署到Linux VM是不适合我的select。

不幸的是,Azure应用服务不支持端口80或443之外的HTTP连接:

Azure应用服务中的应用托pipe限制的详细信息

除Azure应用程序服务(以及您指示不能使用的虚拟机)之外,如果您能够使用Azure服务结构,则可以考虑使用它来托pipeNode.js应用程序。 这将允许您指定一个特定的端口号:

在Azure Service Fabric上托pipeNode.js和类似的应用程序

Service Fabric是Azure的微服务平台,对于托pipe应用程序具有许多部署和pipe理优势。 也就是说,涉及到一些前期设置,SF的许多好处随着时间推移而增加(相对立即),所以它可能会或可能不适合您的课程项目的需求。

祝你好运!

正如@JoshL所说,Azure App Service除了端点80和443以外不会侦听其他端口上的数据包,请参阅wike页面https://github.com/projectkudu/kudu/wiki/Azure-Web- App-sandbox#network-endpoint-listening 。

根据DreamSpark的MS Azure描述,如果您必须使用Azure VM或其他服务,则可能需要升级Azure服务的订阅。