作为现有asp.net站点的应用程序运行时,iisnode错误500

时间:2013-09-11 11:49:00

标签: asp.net node.js iis-7.5 iisnode

我正在尝试将iisnode的样本作为现有ASP.Net MVC网站中的应用程序运行,我遇到了问题。

IIS是Windows 2008 R2上的7.5版

示例位于\ program files \ iisnode \ www \

我已经设置了两种访问iisnode样本的方法:

  • 作为端口82上的单独网站,指向\ program files \ iisnode \ www \。当我导航到http://localhost:82/helloworld/hello.js时,这很好用,作为回报,我得到了
  

你好,世界! [helloworld样本; iisnode版本为0.2.7,节点版本为v0.8.22]

  • 作为“节点”应用程序指向我的Asp.net Web Forms + MVC网站中的相同\ program files \ iisnode \ www \ 当我导航到http://localhost/node/helloworld/hello.js时,我收到HTTP 500错误:

    • 模块iisnode
    • 通知ExecuteRequestHandler
    • Handler iisnode
    • 错误代码0x8007000d

令人惊讶的是,http://localhost/node/helloworld/hello.js在我导航到http://localhost:82/helloworld/hello.js之前无效。然后http://localhost/node/helloworld/hello.js将开始工作! ...如果我做了iisreset,那么它将不再起作用......(直到我导航到http://localhost:82/...)。

我必须补充一点,出于测试目的,网站和应用程序共享相同的应用程序池,它运行为本地系统,Enable32BitApplication = false,.Net Framework 4.0,集成。

在对应用程序进行不成功的尝试后,添加了网站用于测试目的。所以我不认为问题来自冲突。 两者都使用匿名身份验证,不使用模拟。

启用跟踪后,我可以掌握以下错误消息

  

iisnode无法初始化新的node.exe进程

似乎网站能够激活node.exe进程,应用程序无法在其中运行。而且,一旦被网站激活,node.exe进程就可用于共享应用程序池中的应用程序。

有人能指出我正确的方向,以便我可以在现有网站上使用iisnode作为应用程序吗?

1 个答案:

答案 0 :(得分:3)

如果这对某人有帮助,我终于发现问题出在我在根ASP.NET web.config中引用外部appSettings文件的方式。

外部appSettings.config文件以这种方式引用:

  <appSettings configSource=".\conf\appSettings.config" />

到目前为止,它运行良好,我从未遇到过ASP.NET子应用程序的问题。

我删除了configSource路径中的前导.\后,我的iisnode子应用程序停止生成HTTP 500错误:

  <appSettings configSource="conf\appSettings.config" />