【问题标题】:windows server run nodejs app on port 80windows server 在 80 端口上运行 nodejs 应用程序
【发布时间】:2016-11-21 15:49:05
【问题描述】:

我有一个 Windows 服务器,它已经托管了一个 asp.net 应用程序,还有几个使用 IIS 的网站。现在我必须在域上托管一个 nodejs 应用程序。但是我不能在端口 80 上运行这个应用程序。它显示以下错误。

Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.

    C:\Users\Administrator>cd C:\inetpub\wwwroot\app

    C:\inetpub\wwwroot\app>node server.js
    (node) util.puts is deprecated. Use console.log instead.
    Http Server running at http://serverip:80/
    events.js:141
          throw er; // Unhandled 'error' event
          ^

    Error: listen EACCES serverip:80
        at Object.exports._errnoException (util.js:849:11)
        at exports._exceptionWithHostPort (util.js:872:20)
        at Server._listen2 (net.js:1218:19)
        at listen (net.js:1267:10)
        at net.js:1376:9
        at doNTCallback3 (node.js:441:9)
        at process._tickCallback (node.js:347:17)
        at Function.Module.runMain (module.js:477:11)
        at startup (node.js:118:18)
        at node.js:952:3

    C:\inetpub\wwwroot\app>node server.js
    (node) util.puts is deprecated. Use console.log instead.
    Http Server running at http:/serverip:80/
    events.js:141
          throw er; // Unhandled 'error' event
          ^

    Error: listen EACCES serverip:80
        at Object.exports._errnoException (util.js:849:11)
        at exports._exceptionWithHostPort (util.js:872:20)
        at Server._listen2 (net.js:1218:19)
        at listen (net.js:1267:10)
        at net.js:1376:9
        at doNTCallback3 (node.js:441:9)
        at process._tickCallback (node.js:347:17)
        at Function.Module.runMain (module.js:477:11)
        at startup (node.js:118:18)
        at node.js:952:3

    C:\inetpub\wwwroot\app>

    C:\inetpub\wwwroot\app>

经过研究,我知道 IIS 正在使用端口 80。有没有办法将应用程序与其他 asp.net 应用程序一起托管在端口 80 上? 提前致谢。

【问题讨论】:

    标签: asp.net node.js iis hosting windows-server-2012-r2


    【解决方案1】:

    对于您的回答:对于 TCP,否。您一次只能让一个应用程序监听一个端口。 现在,如果您有 2 个网卡,您可以让一个应用程序在第一个 IP 上侦听,并使用相同的端口号在第二个 IP 上运行第二个应用程序。

    对于 UDP(多播),多个应用程序可以订阅同一个端口。

    【讨论】:

    • 你说没有办法在80端口上托管。我必须切换服务器。对吗?
    • 如果我在任何其他端口上运行,我可以使用“www.domainname.com”网址而不是“www.domainname.com:port”来访问应用程序吗?
    【解决方案2】:

    经过长期研究,我正在回答我的问题。这可能对寻求解决同一问题的人有所帮助。

    我终于知道了 iisnode 模块,并且我已经使用 iisnode 托管了一个生产应用程序。它工作得很酷。你唯一需要做的就是安装模块并按照他们的说明进行操作。

    https://tomasz.janczuk.org/2011/08/hosting-nodejs-applications-in-iis-on.html

    如上述网址中所述,表示这样做时有很酷的功能。

    【讨论】:

      猜你喜欢
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 2015-12-02
      • 2016-02-15
      • 1970-01-01
      • 2011-11-13
      • 2021-08-22
      相关资源
      最近更新 更多