我有一个已经托管了asp.net应用程序的Windows服务器以及使用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应用程序? 提前谢谢。
答案 0 :(得分:1)
你的回答:对于TCP,NO。一次只能有一个应用程序在一个端口上进行侦听。 现在,如果您有2个网卡,您可以让一个应用程序侦听第一个IP,并使用相同的端口号在第二个IP上运行第二个应用程序。
对于UDP(多播),多个应用程序可以订阅同一个端口。
答案 1 :(得分:0)
我在经过长期研究后回答了我的问题。这对于寻找同一问题解决方案的人来说可能会有所帮助。
最后我开始了解iisnode模块,并且我已经使用iisnode托管了一个关于生产的应用程序。它工作很酷。你需要做的就是安装模块并遵循他们的指示。
https://tomasz.janczuk.org/2011/08/hosting-nodejs-applications-in-iis-on.html
正如上面的网址所描述的那样,它表示它具有很酷的功能。