听 EACCES:Windows 中的权限被拒绝

Posted

技术标签:

【中文标题】听 EACCES:Windows 中的权限被拒绝【英文标题】:listen EACCES: permission denied in windows 【发布时间】:2020-04-13 04:18:32 【问题描述】:

在我卸载 vscode 并再次安装后,今天晚上之前一切正常我在尝试运行 npm run app 时遇到了这个问题我不知道如何解决这个问题我尝试运行 vs 代码和命令提示符或 bash 使用以管理员身份运行但没有运气,我看到了很多针对此问题的修复,但其中大多数是针对 mac 的,他们使用sudo 修复了它,但我没有看到任何适用于 Windows 的好的修复,如果有人愿意,将不胜感激帮我解决这个问题

//this issue this my server code 
const express = require("express");
const app = express()
const port = process.env || 8080

app.get("/", (req, res) => 
  res.send("Hello");
);



app.listen(port,()=>
  console.log("running on 8080")
)

这是完整的错误

events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES: permission denied C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;D:\BookStore\node_modules\.bin;C:\Users\Samarth's PC\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\local\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\Samarth's PC\bin;C:\ProgramData\Miniconda3;C:\ProgramData\Miniconda3\Library\mingw-w64\bin;C:\ProgramData\Miniconda3\Library\usr\bin;C:\ProgramData\Miniconda3\Library\bin;C:\ProgramData\Miniconda3\Scripts;C:\Python27;C:\Python27\Scripts;C:\Users\Samarth's PC\AppData\Local\Programs\Python\Python38-32\python.exe;C:\Program Files\nodejs;C:\ProgramData\chocolatey\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files (x86)\Yarn\bin;C:\Users\Samarth's PC\AppData\Local\Microsoft\WindowsApps;C:\Program Files\MongoDB\Server\4.0\bin;C:\Program Files\heroku\bin;C:\nvm;C:\Program Files\nodejs;C:\Python 3.8;C:\Users\Samarth's PC\AppData\Roaming\npm;C:\Users\Samarth's PC\AppData\Local\Yarn\bin;C:\Users\Samarth's PC\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Git\usr\bin\vendor_perl;C:\Program Files\Git\usr\bin\core_perl
    at Server.setupListenHandle [as _listen2] (net.js:1283:19)
    at listenInCluster (net.js:1348:12)
    at Server.listen (net.js:1447:5)
    at Function.listen (D:\BookStore\node_modules\express\lib\application.js:618:24)
    at Object.<anonymous> (D:\BookStore\app.js:11:5)
    at Module._compile (internal/modules/cjs/loader.js:956:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
    at Module.load (internal/modules/cjs/loader.js:812:32)
    at Function.Module._load (internal/modules/cjs/loader.js:724:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1327:8)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) 
  code: 'EACCES',
  errno: 'EACCES',
  syscall: 'listen',
  address: "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\npm-lifecycle\\node-gyp-bin;D:\\BookStore\\node_modules\\.bin;C:\\Users\\Samarth's PC\\bin;C:\\Program Files\\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr\\local\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Program Files\\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Users\\Samarth's PC\\bin;C:\\ProgramData\\Miniconda3;C:\\ProgramData\\Miniconda3\\Library\\mingw-w64\\bin;C:\\ProgramData\\Miniconda3\\Library\\usr\\bin;C:\\ProgramData\\Miniconda3\\Library\\bin;C:\\ProgramData\\Miniconda3\\Scripts;C:\\Python27;C:\\Python27\\Scripts;C:\\Users\\Samarth's PC\\AppData\\Local\\Programs\\Python\\Python38-32\\python.exe;C:\\Program Files\\nodejs;C:\\ProgramData\\chocolatey\\bin;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C:\\WINDOWS\\System32\\OpenSSH;C:\\Program Files (x86)\\Yarn\\bin;C:\\Users\\Samarth's PC\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Program Files\\MongoDB\\Server\\4.0\\bin;C:\\Program Files\\heroku\\bin;C:\\nvm;C:\\Program Files\\nodejs;C:\\Python 3.8;C:\\Users\\Samarth's PC\\AppData\\Roaming\\npm;C:\\Users\\Samarth's PC\\AppData\\Local\\Yarn\\bin;C:\\Users\\Samarth's PC\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Program Files\\Git\\usr\\bin\\vendor_perl;C:\\Program Files\\Git\\usr\\bin\\core_perl",
  port: -1

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! bookstore@1.0.0 start: `node app.js "app"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bookstore@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Samarth's PC\AppData\Roaming\npm-cache\_logs\2019-12-20T16_43_00_131Z-debug.log
//Error log is here
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'start',
1 verbose cli   'app'
1 verbose cli ]
2 info using npm@6.12.0
3 info using node@v12.13.0
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle bookstore@1.0.0~prestart: bookstore@1.0.0
6 info lifecycle bookstore@1.0.0~start: bookstore@1.0.0
7 verbose lifecycle bookstore@1.0.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle bookstore@1.0.0~start: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;D:\BookStore\node_modules\.bin;C:\Users\Samarth's PC\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\local\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\Samarth's PC\bin;C:\ProgramData\Miniconda3;C:\ProgramData\Miniconda3\Library\mingw-w64\bin;C:\ProgramData\Miniconda3\Library\usr\bin;C:\ProgramData\Miniconda3\Library\bin;C:\ProgramData\Miniconda3\Scripts;C:\Python27;C:\Python27\Scripts;C:\Users\Samarth's PC\AppData\Local\Programs\Python\Python38-32\python.exe;C:\Program Files\nodejs;C:\ProgramData\chocolatey\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files (x86)\Yarn\bin;C:\Users\Samarth's PC\AppData\Local\Microsoft\WindowsApps;C:\Program Files\MongoDB\Server\4.0\bin;C:\Program Files\heroku\bin;C:\nvm;C:\Program Files\nodejs;C:\Python 3.8;C:\Users\Samarth's PC\AppData\Roaming\npm;C:\Users\Samarth's PC\AppData\Local\Yarn\bin;C:\Users\Samarth's PC\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Git\usr\bin\vendor_perl;C:\Program Files\Git\usr\bin\core_perl
9 verbose lifecycle bookstore@1.0.0~start: CWD: D:\BookStore
10 silly lifecycle bookstore@1.0.0~start: Args: [ '/d /s /c', 'node app.js "app"' ]
11 silly lifecycle bookstore@1.0.0~start: Returned: code: 1  signal: null
12 info lifecycle bookstore@1.0.0~start: Failed to exec start script
13 verbose stack Error: bookstore@1.0.0 start: `node app.js "app"`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:210:5)
13 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:210:5)
13 verbose stack     at maybeClose (internal/child_process.js:1021:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
14 verbose pkgid bookstore@1.0.0
15 verbose cwd D:\BookStore
16 verbose Windows_NT 10.0.18362
17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start" "app"
18 verbose node v12.13.0
19 verbose npm  v6.12.0
20 error code ELIFECYCLE
21 error errno 1
22 error bookstore@1.0.0 start: `node app.js "app"`
22 error Exit status 1
23 error Failed at the bookstore@1.0.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

【问题讨论】:

是否有机会将错误日志也粘贴到 C:\Users\Samarth's PC\AppData\Roaming\npm-cache_logs\2019-12-20T16_43_00_131Z-debug.log 中? 我已经添加了错误日志也请检查@Zhephard 您是否缺少 package.json 文件?你检查了 npm -v 还是 node -v? 我检查了 npm 和节点版本都在更新版本中,是的,我有 package.json 文件,我看到这个错误是因为一些权限问题 考虑更改问题的标签,因为这并不意味着与 node.js 或 npm 有关,而是与操作系统权限管理有关 【参考方案1】:

您好,任何来到这里但没有找到任何答案的人。我有一个我认为会有所帮助的答案。它为我解决了这个问题。 在某些情况下,端口上没有运行任何东西,但某些应用程序甚至您的代码无法运行修复程序,这是按以下顺序进行的:

    以管理员身份打开 PowerShell。

    使用以下命令停止 winnat:

    net stop winnat

    使用以下命令再次启动 winnat:

    net start winnat

这在很多情况下为我解决了这个问题。无需重启。希望对你也有帮助。

编辑: 我深入研究了这个问题,发现问题是端口没有以正确的方式关闭,这很容易基于终止终端窗口或端口上运行的应用程序而导致。

【讨论】:

这在 2021 年仍然有效。非常感谢。 为我工作,感谢 DevAddict 谢谢,我们遇到了同样的问题 刚刚在windows 11下成功使用——我自己永远不会发现...【参考方案2】:

对我来说,当 Windows 10 有一些待处理的更新时,这种情况经常发生。要解决此问题,我需要安装所有待处理的更新并在此过程中重新启动 1-2 次。

【讨论】:

对我来说也一样。更新阻塞了一些端口。我没有在 Windows 中找到任何端口阻塞的隐藏规则。【参考方案3】:

我通过以下步骤解决了这个问题:

总是使用行政特权

在 Windows 上安装 WSL 集成

在终端上运行 WSL,你将发送到 linux 环境

安装节点(https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04-pt)

转到你的项目路径并使用linux终端再次执行

它会起作用的

【讨论】:

【参考方案4】:

我已经禁用了防病毒实时保护,它已经被修复了。

【讨论】:

【参考方案5】:

我也遇到过同样的问题。某些在后台运行的 Windows 应用程序或您自己启动的进程正在使用您要侦听的端口。 尝试使用随机端口号。例如 5645。如果在 2 或 3 次尝试后仍无法正常工作,则可以确定问题不是因为使用的端口造成的。

【讨论】:

【参考方案6】:

在这种特殊情况下,它会失败,因为您的代码端口不是您认为的那样。看,process.env 是一个带有您的环境变量的对象,而不是端口号。

所以不是

const port = process.env || 8080

应该是这样的

const port = process.env.PORT || 8080

我想是因为我在app.listen(PORT, HOST, callback) 中反转了端口和主机参数,并在搜索为什么它无法以消息Error: listen EACCES: permission denied localhost 开头时发现了这个问题。

【讨论】:

【参考方案7】:

对我来说,我必须删除所有锁定文件(yarn.lockpackage-lock.json)和 node_modules 文件夹。我实际上无法正常删除 node_module 文件夹,所以我在目录中以管理员身份打开 Powershell 并运行 rm node_modules 并确认。之后,我成功运行 yarn install(它与 npm 相同)。

【讨论】:

【参考方案8】:

如果它对其他人有帮助,它对我来说是失败的,因为我尝试添加一个太小的端口 (999),尝试更改您的端口,看看是否可以通过这种方式解决。

【讨论】:

【参考方案9】:

试试这个步骤

在运行之前以管理员身份运行命令提示符/powershell 这个脚本 完全删除 node_modules 文件夹并重新安装 使用 npm install 然后运行启动脚本的依赖项

【讨论】:

以上是关于听 EACCES:Windows 中的权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

nodejs:听 EACCES:权限被拒绝 0.0.0.0:80

打开失败:Android 中的 EACCES(权限被拒绝)

ASP.net 5 在 Live Windows Server 上自托管 - EACCES 权限被拒绝?

Android 5(HTC) EACCES(权限被拒绝)

错误:EACCES:权限被拒绝

错误:EACCES:权限被拒绝,mkdir '/.npm'