我正在尝试将iisnode的样本作为现有ASP.Net MVC网站中的应用程序运行,我遇到了问题。
IIS是Windows 2008 R2上的7.5版
示例位于\ program files \ iisnode \ www \
中我已经设置了两种访问iisnode样本的方法:
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错误:
令人惊讶的是,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,集成。
在对应用程序进行不成功的尝试后,添加了网站用于测试目的。所以我不认为问题来自冲突。 两者都使用匿名身份验证,不使用模拟。
启用跟踪后,我可以掌握以下错误消息
似乎网站能够激活node.exe进程,应用程序无法在其中运行。而且,一旦被网站激活,node.exe进程就可用于共享应用程序池中的应用程序。iisnode无法初始化新的node.exe进程
有人能指出我正确的方向,以便我可以在现有网站上使用iisnode作为应用程序吗?
答案 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" />