問題タブ [iisnode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
3150 参照

node.js - Node アプリが 4xx を返すと IIS が 500 を返す

私はiisnode githubプロジェクトでもこれを尋ねました

Windows Azure Web サイト経由で IISNode を使用しています。

Node アプリが 2xx ステータス コード (200、201 など) を返す場合、すべて正常であり、期待どおりに動作します。

たとえば、Node アプリが 4xx ステータス コードを返した場合 response.send(404, "not found")(Restify を使用しています)、クライアントに 500 が送信され、本文は単純に「内部サーバー エラーが発生したため、ページを表示できません」となります。

私がそうazure site log tail <sitename>すると、500 がクライアントに送信されると、ログに 404 の HTML が含まれます。

IISNode/IIS に 404 を取得してクライアントに送信してもらいたいだけです。これは、401、409 などにも当てはまります。これらはすべて、代わりに 500 が送信される原因となります。

私は自分のweb.configで試し<customErrors mode="off" />てみましたが、役に立ちませんでした。<httpErrors existingResponse="passThrough" />ここに私のweb.configがあります:

価値があるのは、IISnode に何もさせることができず、ノード アプリから 200 を返すことだけです。IIS に静的ファイルを提供させたり、node-inspector を有効にしたり、より興味深い IISNode 機能を実際に実行させようとすると、500 が返されます。理由はわかりませんが、それを乗り越えたいと思っています!

同様の StackOverflow の質問

この質問まさに私の問題です。<httpErrors existingResponse="PassThrough" />それが私にとってはうまくいかないことを除いて。IISNode の設定にもっと根本的な問題があるように感じます。

0 投票する
0 に答える
167 参照

node.js - NodeJS が Azure 内部ポートにバインドできない

NodeJS に Azure の内部エンドポイントをリッスンさせようとしています。

私は次のセットアップを持っています。

  1. ServiceDefinition を介してポート 8082 の内部エンドポイントを作成しました。
  2. 私のserver.jsには2つのhttpサーバーがあります

    server.listen(process.env.port); // External server.listen(8082); // Internal

  3. 外部ポートは IISNode によってバインドされ、要求に正しく応答します。

  4. ただし、内部ポートは失敗します Error: listen EACCES at errnoException (net.js:901:11) at Server._listen2 (net.js:1020:19) at listen (net.js:1061:10) at Server.listen (net.js:1127:5)

ポートを 8083 に変更すると、エラーは発生しません。

ノードが Azure 内部ポートにバインドできない理由を知っている人はいますか?

どんな助けでも大歓迎です。

ありがとう。

0 投票する
2 に答える
1231 参照

windows - iisnode: stdin ファイルの種類が不明です

win8/IIS8でiisnodeがスムーズに動作しています。非常にシンプルなハローワールドを作成しましたが、うまく機能します。ただし、process.stdin を使用しようとすると、次のエラーが発生します。

これは process.stdout では得られないことに注意してください。

私のコード:

iisnode は stdin に対して何かおかしなことをしていますか、それとも設定を誤っていますか?

0 投票する
2 に答える
3410 参照

node.js - iis web サイトのフォルダーにネストされた server.js ファイルに iisnode をポイントします。

iisnode でノード アプリケーションを実行するのに問題があります。私のディレクトリ構造は

ネストされた .js ファイルを指すように iisnode を取得するにはどうすればよいですか? これを試しましたが、実行する代わりにserver.jsをサーバーします。

0 投票する
1 に答える
830 参照

node.js - clientCache を使用して IISnode の web.config を適切に構成する方法

node.js に処理させるよりも、iisnode の静的ファイル構成を使用する方がよいというStackOverflow に関するいくつかの回答を読みました。

それは問題ありませんが、ブラウズ キャッシュの従来の構成で動作させる方法が見つかりません。

node'js の通常のブラウズ キャッシュを使用している場合は、次のように構成 (および動作) します。

私の質問は、次のとおりです。

  • iisnode 静的ファイル サービス システムを使用する方が本当に良いのでしょうか?
  • <clientCache ...IISnode で動作させる方法はありますか?

ありがとう

0 投票する
3 に答える
3181 参照

node.js - Windows 8 で iisnode が 32 ビットの node.js インストールを見つけられない

msiインストーラーを使用してiisnode x64とnodejs x32をインストールしたため、node.isがインストールされました

PATH 環境変数に正常にインストールされました。コマンドラインから「ノード」を実行すると、どこでも機能します。ただし、次のメッセージが表示されるため、IIS からは機能しません。

iisnode モジュールが node.exe プロセスを開始できません。node.exe 実行可能ファイルが、web.config の system.webServer/iisnode/@nodeProcessCommandLine 要素で指定された場所で使用できることを確認してください。デフォルトでは、node.exe は PATH 環境変数にリストされているディレクトリの 1 つにあると予想されます。

このブログのアドバイスを試してみました。つまり、web.config でパスを手動で設定します。これは役に立ちませんでした。ノードの再インストールも試みました。

任意のヒント?