- PR -

モジュールの入れ替えについて

投稿者投稿内容
まつとうや
常連さん
会議室デビュー日: 2004/09/04
投稿数: 42
投稿日時: 2006-02-21 01:47
稼動中のASP.NETのWEBサーバにモジュール(dllやexeなど)を上書きコピーして、URLでの再アクセスによりモジュールがリロードされるタイミングで、
もしも実行中の処理があった場合、その処理はどうなってしまうのでしょうか?
エラーをResponseで返すのでしょうか?
それともそのスレッドについては、処理を完了するのでしょうか。
質問ばかりで済みませんが、WEBサーバを稼動中のまま
利用者に影響を与えずにモジュールの入れ替えをする方法はありませんでしょうか。
よろしくお願いします。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-02-21 08:41
「ASP.NET シャドウコピー」で調べてみてください。その辺りの疑問が解決すると思います。
_________________
囚人のジレンマな日々
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-21 09:15
ASP.NET アプリケーションは、シャドウ コピーによって実行されています。
CodeBase 側のアセンブリ ファイルはロックされることがありません。

これにより、Web サーバーを再起動することなく、アセンブリ ファイルの更新が行えます。
元のファイルが更新されていないか、監視コードを使用して監視しています。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
まつとうや
常連さん
会議室デビュー日: 2004/09/04
投稿数: 42
投稿日時: 2006-02-21 20:31
ありがとうございます。
早速、検索して情報収集してみましたが、
意見が2つに分かれております。
どちらが正しいのでしょうか?


1.DLLのコピーにより実行中のWebアプリの動作がリセットされる。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22760&forum=7&7


2.DLLのコピーにより実行中のWebアプリの動作がリセットされることはない。
http://www.exconn.net/Forums/ShowPost.aspx?PostID=262


私の周りでも1と2の意見でわれています。
実際、動作させてみても2.の場合もあれば
1が発生したことがあると云う者がいたりとはっきりしません。
私もより確実なソースを探してみますが、識者の方のご意見
よろしくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-21 20:44
ASP.NET のシャドーコピー で良いと思いますが...
シナリオも注意点も書かれていますし。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
まつとうや
常連さん
会議室デビュー日: 2004/09/04
投稿数: 42
投稿日時: 2006-02-21 22:41
コメントありがとうございます。
こちらの方の情報を信頼して実際の動作について調査を
進めたいと思います。
ちなみにDLLではなく、実行中のモジュールがbin下のコンソールアプリ(EXE)の
場合も同様の動作となるのでしょうか。再び質問になりすみません。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-22 12:26
引用:

まつとうやさんの書き込み (2006-02-21 22:41) より:

ちなみにDLLではなく、実行中のモジュールがbin下のコンソールアプリ(EXE)の
場合も同様の動作となるのでしょうか。再び質問になりすみません。


意図が完全に掴めていないかもしれませんが、
偽装して Process 起動した場合ということでしょうか?
その場合はロックされますので、置換はできません。

シャドウ コピー自体は、"アセンブリ" ならば問題なくされるはずです。
.resource 何かはダメなので、アセンブリ化するんですよね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
まるく
大ベテラン
会議室デビュー日: 2004/01/09
投稿数: 181
投稿日時: 2006-02-22 13:31
引用:

まつとうやさんの書き込み (2006-02-21 20:31) より:

私の周りでも1と2の意見でわれています。
実際、動作させてみても2.の場合もあれば
1が発生したことがあると云う者がいたりとはっきりしません。



Web.ConfigのnumRecompilesBeforeAppRestartエントリにてWebApplicationのリセットがかかるまでに置換可能なファイル数を指定できます。
但し下記に注意という事で(自動翻訳なので判りにくいんですが)。
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B319947

スキルアップ/キャリアアップ(JOB@IT)