сервер Windows запускает приложение nodejs на порту 80

У меня есть сервер 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. Есть ли способ разместить приложение на порту 80 вместе с другими приложениями asp.net? Заранее спасибо.


person M14    schedule 01.12.2015    source источник


Ответы (2)


На ваш ответ: для TCP НЕТ. У вас может быть только одно приложение, прослушивающее один порт одновременно. Теперь, если у вас есть 2 сетевые карты, вы можете заставить одно приложение прослушивать первый IP-адрес и запускать второе приложение на втором IP-адресе, используя тот же номер порта.

Для UDP (многоадресной рассылки) несколько приложений могут подписаться на один и тот же порт.

person kj007    schedule 01.12.2015
comment
вы говорите, что нет возможности разместиться на порту 80. мне нужно переключить сервер. верно? - person M14; 01.12.2015
comment
если я работаю на любом другом порту, могу ли я получить доступ к приложению, используя URL-адрес www.domainname.com вместо www.domainname.com:port? - person M14; 02.12.2015

Я отвечаю на свой вопрос после длительного исследования. Это может быть полезно для тех, кто ищет решение той же проблемы.

Наконец-то я познакомился с модулем iisnode и разместил приложение на производстве с использованием iisnode. Оно работает круто. Единственное, что вам нужно сделать, это установить модуль и следовать их инструкциям.

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

Как описано в приведенном выше URL-адресе, говорится, что при этом он получил интересные функции.

person M14    schedule 21.11.2016