【发布时间】:2012-09-24 23:18:17
【问题描述】:
在将Etherpad Lite 站点上传到 Azure for Web 站点之前,我正在尝试在我的计算机上启动并运行 IIS,但是当我尝试 (http://pastebin.com/4rZWbqix) 时出现此错误:
iisnode 在处理请求时遇到错误。结果:0x2 HTTP 状态:500 HTTP 原因:内部服务器错误
您收到此 HTTP 200 响应是因为 system.webServer/iisnode/@devErrorsEnabled 配置设置为 '真实'。
除了node.exe进程的stdout和stderr的日志, 考虑使用调试和 ETW 跟踪来进一步诊断 问题。
node.exe进程生成的输出到stdout的最后64k 而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 在处理请求时遇到错误。结果:0x2 HTTP 状态:500 HTTP 原因:内部服务器错误
您收到此 HTTP 200 响应是因为 system.webServer/iisnode/@devErrorsEnabled 配置设置为 '真实'。
除了node.exe进程的stdout和stderr的日志, 考虑使用调试和 ETW 跟踪来进一步诊断 问题。
node.exe进程生成的输出到stdout的最后64k stderr 如下图所示:
[x1B][33m[2012-10-03 20:28:13.587] [警告] 控制台 - [x1B][39m找不到设置文件。继续使用默认值!
[x1B][32m[2012-10-03 20:28:14.338] [INFO] 控制台 - [x1B][39mInstalled 插件:
这似乎不是错误,因为输出的是预期的,但它似乎停止在 plugins.formatPlugins()。
【问题讨论】:
-
你最终做了什么来解决这个问题?我的文件在
C:\Users\langdonx\Documents\WebStorm Projects\x,但错误显示'C:\Users\langdonx'。我不想授予 IIS_IUSRS 访问我的整个用户目录的权限。我错过了什么? -
不幸的是,我从未找到解决方法:\
标签: node.js azure etherpad iisnode