2

我正在尝试将 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,node版本为v0.8.22]

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

    • 模块 iisnode
    • 通知 ExecuteRequestHandler
    • 处理程序 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 作为应用程序吗?

4

1 回答 1

3

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

外部 appSettings.config 文件是这样引用的:

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

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

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

  <appSettings configSource="conf\appSettings.config" />
于 2013-09-13T13:25:40.193 回答