このような変更を行うとすぐに、依存関係を効果的に変更したことになります。ASP.NET のシャドウ コピー フォルダーでサイトを再コンパイルする必要があります。
アップデート:
あなたのコメントに基づいて:誰かが e コマース サイトでアイテムを購入し、同時に新しい更新がプッシュされた場合はどうなりますか? それは.NETの私のバグベアの1つです(PHPについて見逃していることの1つは、手間をかけずにPHPファイルを簡単にアップロードできることでした)
サーバーが 1 台しかない場合は、更新を計画し、アップグレードのためにサイトが利用できなくなることを事前に警告する必要があります。と呼ばれる ASP.NET の機能がありますApp_Offline.htm
。これは、アプリケーションに存在する場合、要求されたページに関係なく、ASP.NET がそのコンテンツをレンダリングする特別なページです。これを使用して、サイトがメンテナンスのためにオフラインであることをユーザーに説明するメッセージを表示できます。詳細については、Scott Guthrie のブログ を参照してください。
この方法でサイトのアップグレードにアプローチすることは不合理ではありません。これは、単一のアトミック ステップでサイトの更新を実行するメカニズムであり、ユーザーが気にしない事前の警告をユーザーに十分に提供する場合です (おそらく、トラフィックが典型的な最低点)。
あなたは、PHP ではこの問題は発生しないと述べています。実際、関連のないページを 2 つ以上更新する場合は、当然ながら、アップグレード中にユーザーがサイトにアクセスできないようにする必要があります。
おそらく e コマース アプリケーションの一部として、関連性の低い 5 ~ 6 ページを更新しているとします。アップロード プロセス中に最初のページをデプロイすると、それがユーザーに提供されます。このページに加えた変更の 1 つは、フォームに新しいフィールドを追加することでした。ページは、このフィールドを使用する別の PHP スクリプトにポスト バックします。次の 2 つのシナリオがあります。
ポストバック ページは新しく、まだアップロード キューにあります。これにより、新しくアップロードされたスクリプトが壊れます。これは、ユーザーが [送信] をクリックしても送信先がないためです。
ポストバック ページは既に存在しますが、更新されていません。このページは、フォームの投稿フィールドをデータベースに書き込みます。この新しいフィールドをデータベースに追加しましたが、これは必須フィールドであり、null にすることはできません。まだ更新されていないポストバック スクリプトは DB を更新しようとしますが、新しいフィールドがポストバック フォームの INSERT ステートメントにないためエラーが発生し、NULL で NOT NULL 制約違反が発生します。
私は続けることができました。あなたのサイトがほんの些細な量以上の機能を提供している場合は、すべての更新のためにオフラインにして、更新されたすべてのコードが単一のアトミック更新で展開されるようにする必要があります。