1

IIS 7、Windows Server 2008、iisnode および node.js 0.10.20 で実行されている Node.js/ Node-soapサービスのセットアップで問題が発生しています。同じコードを使用したこの同じセットアップは、社内の別のサーバーで実行されており、完全に機能しています。問題は、セットアップ プロセスが文書化されておらず、すべてをセットアップした人が新しいサーバーに移行できないことです。また、NodeもIISnodeも予備知識がありません。

これは、出力されるエラー メッセージです。

要求の処理中に iisnode でエラーが発生しました。

HRESULT: 0x2 HTTP ステータス: 500 HTTP 理由: 内部サーバー エラー system.webServer/iisnode/@devErrorsEnabled 構成設定が「true」であるため、この HTTP 200 応答を受信して​​います。

node.exe プロセスの stdout および stderr のログに加えて、デバッグおよび ETW トレースを使用して問題をさらに診断することを検討してください。

node.exe プロセスによって stderr に生成された出力の最後の 64k を以下に示します。

アプリケーションがキャッチされない例外をスローしたため終了しました: エラー: %1 は有効な Win32 アプリケーションではありません。

\node_modules\soap\node_modules\node-expat\build\Release\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 ファイルに以下を追加しました。

今私がオンラインで見つけたものは、試してみましたがうまくいきませんでした.

  1. このスタック オーバーフローの質問から、次の 2 つのことを試しました。

    • この部分を Node.js ファイルに追加しました。

      <iisnode watchedFiles="*.js;node_modules\*;routes\*.js;views\*.jade" nodeProcessCommandLine="\program files\nodejs\node.exe"/>
      
    • シンボリックリンクを作成しました:

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

何か他のことを試したら更新します。

すべての助けをいただければ幸いです。

更新 1 : Enable32-Bit Applications = False.IIS で設定されていることを確認し、VS 2010 x64 redistバイナリを修復しました

4

1 に答える 1

1

このエラー メッセージは、\node_modules\soap\node_modules\node-expat\build\Release\node_expat.node のビット数が IIS ワーカー プロセス (w3wp.exe) のビット数と一致しないことを示しています。IIS を 64 ビット ワーカー プロセスで実行しているように見えるため (32 ビット アプリケーションを有効にする == False)、node_expat.node が 32 ビット バイナリであることを示している可能性があります。

于 2013-10-11T16:51:53.463 に答える