错误:EPERM,不允许对Node.js和Etherpad Lite进行操作

错误:EPERM,不允许对Node.js和Etherpad Lite进行操作,node.js,azure,etherpad,iisnode,Node.js,Azure,Etherpad,Iisnode,在将网站上载到Azure for Web Sites之前,我正在尝试在我的计算机上使用IIS启动并运行一个网站,但在尝试()时出现此错误: iisnode在处理请求时遇到错误。HRESULT:0x2 HTTP状态:500 HTTP原因:内部服务器错误 您收到此HTTP 200响应是因为 system.webServer/iisnode/@deverrorEnabled配置设置为 “真的” 除了node.exe进程的stdout和stderr日志, 考虑使用调试和ETW跟踪来进一步诊断 问题 no

在将网站上载到Azure for Web Sites之前,我正在尝试在我的计算机上使用IIS启动并运行一个网站,但在尝试()时出现此错误:

iisnode在处理请求时遇到错误。HRESULT:0x2 HTTP状态:500 HTTP原因:内部服务器错误

您收到此HTTP 200响应是因为 system.webServer/iisnode/@deverrorEnabled配置设置为 “真的”

除了node.exe进程的stdout和stderr日志, 考虑使用调试和ETW跟踪来进一步诊断 问题

node.exe进程生成的最后64k输出到stdout 而stderr如下所示:fs.js:520 return

      binding.lstat(pathModule._makeLong(path));
              ^ Error: EPERM, operation not permitted 'C:\Users\Matthew'
at Object.fs.lstatSync (fs.js:520:18)
at Object.realpathSync (fs.js:1047:21)
at tryFile (module.js:142:15)
at Function.Module._findPath (module.js:181:18)
at Function.Module._resolveFilename (module.js:336:25)
at Function.Module._load (module.js:280:25)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
Etherpad的目录中没有fs.js文件,所以我假设Node.js的某个部分有问题。我是Node.js的新手,希望您能提供帮助

编辑1:我目前正在寻找Azure的替代方案,并将权限授予C:\Users\Matthew。但是,是否有可能以某种方式修改fs.js以在binding.lstat周围放置try/catch

编辑2:在玩了一点之后(添加权限有效!),我让它开始工作了。但现在加载127.0.0.1:81返回:

iisnode在处理请求时遇到错误。HRESULT:0x2 HTTP状态:500 HTTP原因:内部服务器错误

您收到此HTTP 200响应是因为 system.webServer/iisnode/@deverrorEnabled配置设置为 “真的”

除了node.exe进程的stdout和stderr日志, 考虑使用调试和ETW跟踪来进一步诊断 问题

node.exe进程生成的最后64k输出到stdout 而stderr如下所示:

[x1B][33m[2012-10-03 20:28:13.587][WARN] 控制台-[x1B][39mNo未找到设置文件。继续使用默认设置

[x1B][32m[2012-10-03 20:28:14.338][INFO]控制台-[x1B][39分钟已安装 插件:


这似乎不是一个错误,因为输出的是预期的,但它似乎在plugins.formatPlugins()处停止.

我不建议Azure托管Etherpad Lite,我们不针对Microsoft的服务进行优化,这包括Microsoft Windows。如果这是一个选项,请使用linux托管您的节点实例,您将从我的体验中获得更大的快乐。

请确保与运行node.js applic的IIS应用程序池相关联的用户身份对于您部署应用程序的位置,ation具有适当的文件系统权限(在本例中,类似于
c:\users\matthew

如果您在默认应用程序池中运行应用程序并使用默认IIS用户,则您应该能够通过以下方式授予必要的权限:


%systemdrive%\windows\system32\icacls.exe c:\users\matthew/grant IIS_IUSRS:(OI)(CI)F

关于文件夹“c:\users\matthew”的权限。获取所有权并授予修改权限。

当我试图通过
nvm use[我使用的是10.12.0版的某个节点]
它输出它成功了,但当我运行
node-v
时,它向我显示我实际上在一个8的节点上


我以第二个windows用户的身份登录解决了这个问题(尽管他们都是C:/上安装的管理员和节点)在那里,我使用
nvm use 10.12.0
来替换节点版本,当我用当前用户重新登录时,它就工作了。

你会推荐哪个node.js主机?我遇到的大多数其他主机都不能很好地使用Windows,这就是我选择Azure的原因。在文档中,安装部分从Windows.l开始奥利刚刚遇到了这个错误。我的文件在
C:\Users\langdonx\Documents\WebStorm Projects\x
中,允许对
所有人进行完全访问,但错误仍然引用了
操作不允许的“C:\Users\langdonx”
。我不想授予IIS\u IUSRS访问我的整个用户目录的权限。我缺少什么?请仔细检查文件夹“不允许操作”后注明er。我在一个嵌套良好的文件夹中有一个网站,它有自己的本地node_模块,并收到了此错误,结果发现node在文件夹树上递归查找node_模块文件夹,并进入c:\users\bob\node_模块,这就是我在授予访问权限时遇到的严重问题。出于开发目的,我只设置了应用程序池标识到“本地服务”成功了。将应用程序池权限授予文件夹c:\users\bob不起作用。您最终做了什么来修复此问题?我的文件位于
c:\users\langdonx\Documents\WebStorm Projects\x
,但错误为
'c:\users\langdonx'
。我不想授予IIS\u IUSRS访问我的整个用户目录的权限。我缺少什么?不幸的是,我从未找到解决办法:\