0

私は C# で Web サービスを作成しており、全くの初心者です。私が尋ねたことがばかげている場合は、ご容赦ください。Web サービスが使用する一連の dll があります。私が達成したいことは次のとおりです。

  1. dll が first.dll、second.dll、および common.dll であるとします。
  2. common.dll は first.dll および second.dll で参照されます (common.dll には、first.dll および second.dll で実装されるインターフェイスが含まれます)。
  3. common.dll には、first.dll と second.dll に含まれるクラスの型の静的辞書があります。このディクショナリのクラスは、必要に応じてインスタンス化されます。
  4. 新しい common.dll をリリースする準備ができたら、その common.dll ファイルを手動で削除し、システムが稼働中の状態で common.dll の新しいリリースに置き換えたいと考えています。

現在、ステップ 4 を実行しようとすると、次のエラーが表示されます。

それは私が何かを完全に見逃しているということですか?

4

2 に答える 2

0

ホスティングウェブサイトをシャットダウンする必要があります。新しいアセンブリをコピーします。次に、Webサイトを再起動します。

于 2012-06-07T17:39:21.553 に答える
0

24 時間 365 日の可用性は安価なものではありません。本当に必要ですか?

簡単な方法の 1 つは、アプリケーションをアップグレードしたときにトラフィックを別のサーバーに再ルーティングすることです。両方のサーバーを実行し、新しいサーバーに問題がないことを確認してから、トラフィックを新しいサーバーに切り替えます。DNS エントリまたは一部のソフトウェア/ハードウェア ルーターを使用して、トラフィックをリダイレクトできます。

その場でアセンブリを本当に置き換えたい場合は、それを行うことができます。十分な数のプロキシ オブジェクトのレイヤーが必要になる場合があり、最終的なアセンブリをカスタム アプリ ドメインに読み込む可能性があります。IIS の Web サイトのルート フォルダーに DLL をコピーするだけで済む場合があり、アプリ ドメインのリサイクルが正しく機能し、「常に稼働している」要件を満たすことを期待できます。

注:「手動で削除」と「システムは常に稼働中/実行中」は、同じシステムに対して一緒に表示されるべきではありません...いつでも同じ退屈な数十のステップを完璧に実行できる人を知っている場合を除きます日の...

于 2012-06-07T18:01:19.883 に答える