サーバーに IISNode をセットアップし、ガイドに従って単純な Hello World node.js アプリを実行しました。正常に動作し、インターネット経由で外部からアクセスできます。ただし、既存の Express アプリを取り込もうとすると、node/express が存在しないようです。
これは私の web.config ファイルです:
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="app.js" verb="*" modules="iisnode" />
</handlers>
</system.webServer>
</configuration>
これは、メインの高速ファイルである app.js とともに、IIS アプリケーションのルート ディレクトリにあります。興味深いのは、localhost/TestApp/app.js にアクセスすると、次のように返されることです。
Cannot GET /TestApp/app.js
ただし、localhost/TestApp/public/htm/index.htm などの別のファイルを試すと、そこにあるファイルが返されます (予想どおり、HTML で)。また、サーバー呼び出しを試みた場合 (例: localhost/TestApp/GetUsernames)。
さらに興味深いのは、ポートを台無しにした場合 (例: app.listen(process.env.PORT2 );)、localhost/TestApp.js にアクセスしようとすると、次のようになることです。
> iisnode encountered an error when processing the request. > > HRESULT: 0x2 HTTP status: 500 HTTP reason: Internal Server Error
ポートが正しい場合 (app.listen(process.env.PORT2);)、Cannot GET /TestApp/app.js が表示されるため、IISNode が app.js を実行しているように見えます (他の方法で失敗することはありません)。ポートを台無しにします)、何も機能していないようです。
どうすればこれを修正できますか、または少なくとも問題を診断できますか?
ありがとうございました。