iisnode处理请求时遇到错误

我试图检查angularjs应用程序与服务器端编写节点js,这是我得到的错误,当我通过webmatrix

iisnode处理请求时遇到错误。

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

您正在接收此HTTP 200响应,因为system.webServer/iisnode/@devErrorsEnabledconfiguration设置为“true”。

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

node.exe进程没有向stderr写入任何信息,或者iisnode无法捕获这些信息。 频繁的原因是iisnode模块无法创build日志文件来捕获node.exe的stdout和stderr输出。 请检查运行node.js应用程序的IIS应用程序池的标识是否具有对node.js应用程序所在的服务器上的目录的读写权限。 或者,您可以通过将web.config的system.webServer/iisnode/@loggingEnabled元素设置为“false”来禁用日志logging。

有人知道如何解决它?

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

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

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

它看起来像你的iisnode不能写它的日志文件,也许是因为它没有写权限。 如果您有权访问服务器,则可以在应用程序的文件夹中检查iisnode文件夹,这是iisnode默认情况下会尝试写入其日志的位置。

直到你得到这个日志信息,你被卡住了,因为你看到的500错误只告诉你在服务器上发生了错误。 你需要日志给你你需要进行的信息。

唯一的另一种select是在本地运行整个事情,并使用像node-inspector(我使用grunt-node-inspector )来debugging到nodeJS代码,以查看发生了什么。

我通过运行setupsamples.bat文件解决了这个问题。 这增加了权限和其他必要的configuration。 path是我的C:\Program Files\iisnode\setupsamples.bat