2017-08-08 31 views
0

我做来运行Windows服务器上的服务器的NodeJS应用2012端口是7090这是server.js文件的一部分:什么是'错误:听EACCES 0.0.0.0:7090'?

var port = process.env.PORT || 7090; 
app.listen(port, function() { 
    console.log('Listening on port ' + port); 
}); 

当我与node server.js运行它,我得到这个错误:

Error: listen EACCES 0.0.0.0:7090 
    at Object.exports._errnoException (util.js:1008:11) 
    at exports._exceptionWithHostPort (util.js:1031:20) 
    at Server._listen2 (net.js:1240:19) 
    at listen (net.js:1289:10) 
    at Server.listen (net.js:1385:5) 
    at EventEmitter.listen (D:\STH\node_modules\express\lib\application.js:617:24) 
    at Object.<anonymous> (D:\STH\app.js:26:5) 
    at Module._compile (module.js:541:32) 
    at Object.Module._extensions..js (module.js:550:10) 
    at Module.load (module.js:458:32) 

当我改变端口,任何其他数字,除了7090

错误它的工作原理:听EACCES 0.0.0.0:7090 我已经知道,该错误EACCES意味着我用不上权利e端口7090根据this的问题,但我不知道如何解决这个问题。任何帮助非常感谢!

+0

已经在7090上收听了吗? – OrangeDog

+0

Netsh http add urlacl – Lux

+0

我的猜测是,您正在运行某种阻止您的Node应用程序在端口7090上侦听的防病毒或防火墙。 – robertklep

回答

1

这意味着别的东西(可能是您的应用程序)已经在该端口上运行。也许你在后台运行它或者作为另一个用户运行它,并且现在无法恢复它。你可以看一下谁正在使用的端口使用Windows服务器上的netstat:https://technet.microsoft.com/en-us/library/ff961504(v=ws.11).aspx

+1

当您已经在该端口上侦听到某些内容时,您会期待'EADDRINUSE' 'EACCES'(尽管前者可能只有Unix)。 – robertklep

+0

当我检查netstat -anb时,我有这个消息 - 无法获取所有权信息TCP 0.0.0.0:7090 0.0.0.0:0听。这是否意味着它已经在听东西了? –

0

lsof -i:7090

找到PID然后

kill -9 PID

+0

我在windows上,无法使用lsof –

0

发行固定!那个端口已经被IISNode意想不到了。我刚刚删除了它,现在可以运行在7090端口上。