インターネットからアクセスできる唯一のサーバーへの (メンテナンス) アクセスがない場合に更新可能にする必要がある ASP.NET MVC 4 Web サイトに最適なアーキテクチャは何でしょうか?
2 つのサーバーがあります。サーバー A にはインターネット アクセスがありますが、必要なときに更新を行うことができません。サーバー B にはこの問題はありませんが、ファイアウォールの内側にあり、インターネットからアクセスできません。
私はいくつかのアイデアを思いつきました:
- サーバー B で Asp.NET サイトを実行し、サーバー A への単純なプロキシを構築して、トラフィックをトンネリングします。(どのように?) (cf. WCF ルーティング)
- どういうわけか、サーバー B からサイトのほぼ全体を動的にロードします。すべてのサブアプリケーションが変更できる限り、アプリケーションのコアが変更できなくても問題ありません。サーバーから最新のライブラリとファイルをロードするためのアクションを提供するメンテナンスページを作成するかもしれません。
- 外部アップデータ ソフトウェアをビルドします。
サーバーAは他社でも使用されており、例えばIISRESETは論外。もちろん、アプリケーションをホストするアプリケーション プールは、必要に応じてリサイクルできます。
WPF では最新のバイナリをダウンロードし、アプリケーションの起動時に動的にロードするだけですが、Asp.NET と IIS ではもう少し複雑です。