我正在尝试检查用节点js编写的服务器端的angularjs应用程序,这是我通过WebMatrix运行时收到的错误
Iisnode在处理请求时遇到错误。
HRESULT: 0x2
HTTP status: 500
HTTP reason: Internal Server Error
您之所以收到此HTTP 200响应,是因为system.webServer/iisnode/@devErrorsEnabled配置设置为‘true’。
除了node.exe进程的stdout和stderr日志外,还可以考虑使用调试和ETW跟踪来进一步诊断问题。
Node.exe进程没有向stderr写入任何信息,或者iisnode无法捕获此信息。常见原因是iisnode模块无法创建日志文件来捕获node.exe的stdout和stderr输出。请检查运行node.js应用程序的IIS应用程序池的标识是否对node.js应用程序所在的服务器上的目录具有读写访问权限。或者,您可以通过将web.config的system.webServer/iisnode/@loggingEnabled元素设置为‘False’来禁用日志记录。
有人知道怎么修吗?
2条答案
按热度按时间4uqofj5v1#
您的应用程序池似乎没有足够的权限写入当前文件夹。
1.您可以编辑权限以授予IIS_IUSRS组对该文件夹的写入权限
1.进入高级设置菜单,在Process Model->Identity下将用户帐户更改为已具有写入权限的用户。
8mmmxcuj2#
您的iisnode似乎无法写入其日志文件,可能是因为它没有写入权限。如果你有访问服务器的权限,那么你可以在应用程序的文件夹中检查
iisnode
文件夹,这是iisnode默认尝试写入日志的地方。在您获得此日志信息之前,您将一直处于停滞状态,因为您看到的500错误只告诉您错误发生在服务器的某个位置。您需要日志为您提供继续操作所需的信息。
唯一的另一种替代方法是在本地运行整个程序,并使用类似节点检查器的命令(我使用grunt-node-inspector)来调试NodeJS代码,以查看发生了什么。