使用iisnode,nodejs和node-soap库时,Win32应用程序无效

我在使用iisnode和node.js 0.10.20在IIS 7,Windows Server 2008上设置Node.js / Node-soap服务时遇到了一些问题。 这个相同的设置,使用相同的代码,在另一个服务器上运行,并且完美地工作。 问题是没有logging安装过程,并且把它放在一起的人不能将其迁移到新的服务器。 而且我在Node和IISnode中都没有预先的知识。

这是打印的错误信息:

iisnode处理请求时遇到错误。

HRESULT:0x2 HTTP状态:500 HTTP原因:内部服务器错误您正在收到此HTTP 200响应,因为system.webServer/iisnode/@devErrorsEnabledconfiguration设置为“true”。

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

下面显示了由node.exe进程到stderr生成的最后一个64k输出:

应用程序已抛出一个未捕获的exception,并终止:错误:%1不是有效的Win32应用程序。

\ node_modules \肥皂\ node_modules \节点外籍\build造\发布\ node_expat.node

at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (<Path to application>\node_modules\soap\node_modules\node-expat\lib\node-expat.js:4:13) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) 
  • 我已经将以下内容添加到了我的Node.js文件中:

现在我在网上find了,试过但没有奏效,如下:

  1. 从这个堆栈溢出的问题,我尝试了两件事情:

    • 添加了这个部分到我的Node.js文件。

       <iisnode watchedFiles="*.js;node_modules\*;routes\*.js;views\*.jade" nodeProcessCommandLine="\program files\nodejs\node.exe"/> 
    • 创build了一个符号链接:

       mklink /D "C:\Program Files (x86)\nodejs" "C:\Program Files\nodejs" 

将更新,如果我尝试别的。

所有的帮助将不胜感激。

更新1 :我确定Enable32-Bit Applications = False. 在IIS中设置,并修复VS 2010 x64 redist二进制文件

此错误消息提示\ node_modules \ soap \ node_modules \ node-expat \ build \ Release \ node_expat.node的位数与IIS工作进程(w3wp.exe)的位数不匹配。 由于您似乎正在使用64位工作进程(启用32位应用程序== False)运行IIS,它可能表明node_expat.node是一个32位二进制文​​件?