错误:EPERM,Node.js和Etherpad Lite不允许的操作
我试图让我的计算机上运行IIS的Etherpad精简版网站,然后将其上传到Azure Web站点,但是当我尝试( http://pastebin.com/4rZWbqix )时出现此错误:
iisnode处理请求时遇到错误。 HRESULT:0x2 HTTP状态:500 HTTP原因:内部服务器错误
您正在接收此HTTP 200响应,因为system.webServer/iisnode/@devErrorsEnabledconfiguration设置为“true”。
除了node.exe进程的stdout和stderr的日志之外,还可以考虑使用debugging和ETW跟踪来进一步诊断问题。
node.exe进程生成的stdout和stderr输出的最后64k如下所示: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,把一个try / catch围绕binding.lstat?
编辑2:玩了一下之后(添加权限工作!),我已经得到它的工作。 但现在加载127.0.0.1:81返回:
iisnode处理请求时遇到错误。 HRESULT:0x2 HTTP状态:500 HTTP原因:内部服务器错误
您正在接收此HTTP 200响应,因为system.webServer/iisnode/@devErrorsEnabledconfiguration设置为“true”。
除了node.exe进程的stdout和stderr的日志之外,还可以考虑使用debugging和ETW跟踪来进一步诊断问题。
下面显示了node.exe进程生成的stdout和stderr输出的最后64k:
[x1B] [33m [2012-10-03 20:28:13.587] [警告]控制台 – [x1B] [39m没有find设置文件。 继续使用默认值!
[xlB] [32m [2012-10-03 20:28:14.338] [信息]控制台 – [x1B] [39mInstalled插件:
看起来这不是一个错误,因为输出的是预期的,但似乎停在plugins.formatPlugins()。
确保与运行node.js应用程序的IIS应用程序池关联的用户身份对部署应用程序的位置具有相应的文件系统权限(在这种情况下,看起来像c:\users\matthew
)。
如果您在默认应用程序池中运行您的应用程序,并使用默认的IIS用户,则应该能够通过以下方式授予必要的权限:
%systemdrive%\ windows \ system32 \ icacls.exe c:\ users \ matthew / grant IIS_IUSRS:(OI)(CI)F
这是关于文件夹“C:\ Users \ Matthew”的权限。 取得所有权并给予修改权限。
我不会推荐Azure托pipeEtherpad Lite,我们不会为Microsoft的服务进行优化,这包括Microsoft Windows。 如果这是一个选项,请使用Linux来托pipe您的节点实例,您将会对我的经验感到高兴。
- Azure表存储只支持作为数据types的string?
- 哪种azure色的服务,我应该select我的node.js应用程序?
- Azure,SocketIO和NodeJS:如何知道服务器正在侦听哪个端口
- ExpressJS:自定义错误模块不能识别此错误
- 服务工作者在React应用程序中刷新后导致空白页面
- Bad handshake或ECONNRESET Azure Mysql Nodejs
- 对MS Graph API的请求使我“授权请求被拒绝 – 没有足够的权限来完成操作”
- 将图像,video上传到Node.js WebService并存储在Azure Blob存储中
- azure色的通知中心客户端代码在离子中使用ngCordova和PushPlugin