4

複数の ASP.NET プロジェクトを単一の Azure Web ロールでホストするのは非常に簡単ですが (チュートリアル)、単一の Web ロールを使用して ASP.NET プロジェクトと node.js プロジェクトの両方をホストすることは可能ですか?

4

1 に答える 1

4

はい、これは 2 つの異なるソリューションを使用して可能です。

  1. 必要なパラメーターを使用して node.exe を実行するバックグラウンドスタートアップ タスクを設定できます。ASP.NET アプリケーションの場合、変更はありません。必要なのは、そのプロジェクトにノード ファイルを含め、node.exe を起動するときにそのディレクトリを参照することだけです。

  2. iisnodeを使用します。これにより、IIS HttpModule を介してノード コードを実行できるようになり、いくつかの優れた機能が追加されます (Tomasz Janczuk の言葉を引用)。

    • プロセス管理。iisnode モジュールは、node.exe プロセスの有効期間を管理し、全体的な信頼性を簡単に向上させます。プロセスを開始、停止、監視するためのインフラストラクチャを実装する必要はありません。
    • マルチコア サーバーでのスケーラビリティ。node.exe はシングル スレッド プロセスであるため、1 つの CPU コアにのみスケーリングされます。iisnode モジュールを使用すると、アプリケーションごとに複数の node.exe プロセスを作成し、それらの間で HTTP トラフィックの負荷を分散できるため、アプリケーション開発者がインフラストラクチャ コードを追加しなくても、サーバーの CPU 容量を最大限に活用できます。
    • 自動更新。iisnode モジュールは、node.js アプリケーションが更新される (つまり、スクリプト ファイルが変更される) たびに、node.exe プロセスがリサイクルされるようにします。進行中のリクエストは、古いバージョンのアプリケーションを使用して正常に実行を終了できますが、新しいリクエストはすべて新しいバージョンのアプリにディスパッチされます。
    • HTTP を介したログへのアクセス。iisnode モジュールは、node.exe プロセスの出力 (console.log 呼び出しによって生成されたものなど) に HTTP 経由でアクセスできるようにします。この機能は、リモート サーバーにデプロイされた node.js アプリケーションをデバッグするのに役立ちます。
    • 他のコンテンツ タイプと並べて表示します。iisnode モジュールは、1 つの Web サイトにさまざまな種類のコンテンツを含めることができるように、IIS と統合します。たとえば、1 つのサイトに、node.js アプリケーション、静的 HTML および JavaScript ファイル、PHP アプリケーション、および ASP.NET アプリケーションを含めることができます。これにより、当面の作業に最適なツールを選択できるだけでなく、既存のアプリケーションを段階的に移行できます。
    • node.js アプリケーション コードへの最小限の変更。iisnode モジュールを使用すると、最小限の変更で既存の HTTP node.js アプリケーションをホストできます。通常、必要なのは、リストされている HTTP サーバーのアドレスを、process.env.PORT 環境変数を介して iisnode モジュールによって提供されるアドレスに変更することだけです。
    • 統合管理経験。iisnode モジュールは IIS 構成システムと完全に統合されており、構成と保守のために他の IIS コンポーネントと同じツールとメカニズムを使用します。iisnode モジュールに固有の利点に加えて、IIS で node.js アプリケーションをホストすると、開発者はさまざまな IIS 機能を利用できます。
      • ポート共有 (ポート 80 で複数の HTTP アプリケーションをホストする)
      • セキュリティ (HTTPS、認証および承認)
      • URL書き換え
      • 圧縮
      • キャッシング
      • ロギング
于 2012-10-23T06:31:34.620 に答える