处理请求时,iisnode遇到错误

时间:2014-06-04 03:32:31

标签: node.js angularjs

我正在尝试使用在节点js中编写的服务器端检查angularjs应用程序,这是我在webmatrix运行时遇到的错误

  

iisnode在处理请求时遇到错误。

HRESULT: 0x2 
HTTP status: 500 
HTTP reason: Internal Server Error 
     

您收到此HTTP 200响应,因为system.webServer/iisnode/@devErrorsEnabled配置设置为   '真正的'。

     

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

     

node.exe进程尚未向stderr或   iisnode无法捕获此信息。经常的原因是   iisnode模块无法创建要捕获的日志文件   node.exe的stdout和stderr输出。请检查身份   运行node.js应用程序的IIS应用程序池已读取   并将访问权限写入服务器所在的目录   node.js应用程序位于。或者,您可以禁用日志记录   通过设置system.webServer/iisnode/@loggingEnabled元素   web.config为'false'。

有人知道如何修复它吗?

5 个答案:

答案 0 :(得分:8)

您的应用程序池似乎没有足够的权限来写入当前文件夹。

  1. 您可以编辑权限以授予IIS_IUSRS组对该文件夹的写权限

  2. 进入高级设置菜单,在Process Model - >下;身份将用户帐户更改为已具有写入权限的用户。

答案 1 :(得分:4)

看起来您的iisnode无法写入其日志文件,可能是因为它没有写入权限。如果您有权访问服务器,那么您可以在应用程序的文件夹中查看iisnode文件夹,这是iisnode默认尝试写入其日志的位置。

在您获得此日志信息之前,您将被卡住,因为您看到的500错误只会告诉您某个地方服务器上发生了错误。您需要日志才能获得继续操作所需的信息。

唯一的另一种选择是在本地运行整个事情并使用类似node-inspector(我使用grunt-node-inspector)来调试nodeJS代码以查看发生了什么。

答案 2 :(得分:1)

我通过运行setupsamples.bat文件解决了这个问题。这会添加权限和其他必要的配置。我的路径是C:\Program Files\iisnode\setupsamples.bat

答案 3 :(得分:0)

对我来说,没有权限问题,因为在服务器中执行console.log()时,我将日志保存在iisnode forlder中。

我将所有Express放入了一个try代码块,并在尝试使用的日志中记录了该异常,我发现由于某种原因,iisnode在dist / dist / index.html而不是dist / index.html中进行了

一旦我修复了错误,一切都已解决。

答案 4 :(得分:0)

右键单击您的应用程序根目录,允许对“ IIS_IUSRS”用户的“完全控制”,从“高级安全性”开始。

Reference