OK、2008年に私が書いた答えに誰もが反対票を投じているので* ...
2014 年の現在の方法について説明します。現在 ASP.NET MVC を使用しているため、Web サイトを使用しなくなりました。
ロード バランサーと 2 台のサーバーが必要なわけではありません。維持しているすべての Web サイトに 3 台のサーバーがある場合は問題ありませんが、ほとんどの Web サイトでは完全にやり過ぎです。
また、Microsoft の最新のウィザードには依存していません。遅すぎて、隠された魔法が多すぎて、名前を変更しがちです。
方法は次のとおりです。
生成された DLL を「bin-pub」フォルダーにコピーするビルド後のステップがあります。
Beyond Compare (優れている**) を使用して、変更されたファイルを検証し、本番サーバーまで (FTP は広くサポートされているため、FTP 経由で) 同期します。
ウェブサイトには、「bin-pub」のすべてを「bin」にコピーするボタンを含む安全な URL があります (迅速なロールバックを可能にするために最初にバックアップを取ります)。この時点で、アプリは自動的に再起動します。次に、ORM は、追加する必要があるテーブルまたは列があるかどうかを確認し、それらを作成します。
それはわずか数ミリ秒のダウンタイムです。アプリの再起動には 1 ~ 2 秒かかる場合がありますが、再起動中はリクエストがバッファリングされるため、実質的にダウンタイムはゼロになります。
デプロイ プロセス全体は、変更されたファイルの数と確認する変更の数に応じて、5 秒から 30 分かかります。
この方法では、Web サイト全体を別のディレクトリにコピーする必要はなく、bin フォルダーだけをコピーする必要があります。また、プロセスを完全に制御でき、何が変化しているかを正確に把握できます。
**私たちは常に、展開している変更をすばやく確認します - 土壇場での再確認として、何をテストすればよいかを把握し、問題があればすぐに対応できるようにします。FTP 経由でファイルを簡単に比較できるため、Beyond Compare を使用します。私は BC なしでは決してこれを行いません。何を上書きしているのかわかりません。
*一番下までスクロールして確認してください :( ところで、Web サイトは構築に時間がかかり、半分コンパイルされた一時ファイルでひどくクラッシュする可能性があるため、Web サイトはお勧めしません。ファイル単位でより機敏に処理できるため、以前は Web サイトを使用していました。マイナーな問題を非常に迅速に修正し、デプロイしているものを正確に確認できます (もちろん、Beyond Compare を使用している場合 - そうでない場合は忘れてください)。