- - PR -
モジュールの入れ替えについて
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-21 01:47
稼動中のASP.NETのWEBサーバにモジュール(dllやexeなど)を上書きコピーして、URLでの再アクセスによりモジュールがリロードされるタイミングで、
もしも実行中の処理があった場合、その処理はどうなってしまうのでしょうか? エラーをResponseで返すのでしょうか? それともそのスレッドについては、処理を完了するのでしょうか。 質問ばかりで済みませんが、WEBサーバを稼動中のまま 利用者に影響を与えずにモジュールの入れ替えをする方法はありませんでしょうか。 よろしくお願いします。 | ||||
|
投稿日時: 2006-02-21 08:41
「ASP.NET シャドウコピー」で調べてみてください。その辺りの疑問が解決すると思います。
_________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-02-21 09:15
ASP.NET アプリケーションは、シャドウ コピーによって実行されています。
CodeBase 側のアセンブリ ファイルはロックされることがありません。 これにより、Web サーバーを再起動することなく、アセンブリ ファイルの更新が行えます。 元のファイルが更新されていないか、監視コードを使用して監視しています。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 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が発生したことがあると云う者がいたりとはっきりしません。 私もより確実なソースを探してみますが、識者の方のご意見 よろしくお願いいたします。 | ||||
|
投稿日時: 2006-02-21 20:44
ASP.NET のシャドーコピー で良いと思いますが...
シナリオも注意点も書かれていますし。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-02-21 22:41
コメントありがとうございます。
こちらの方の情報を信頼して実際の動作について調査を 進めたいと思います。 ちなみにDLLではなく、実行中のモジュールがbin下のコンソールアプリ(EXE)の 場合も同様の動作となるのでしょうか。再び質問になりすみません。 | ||||
|
投稿日時: 2006-02-22 12:26
意図が完全に掴めていないかもしれませんが、 偽装して Process 起動した場合ということでしょうか? その場合はロックされますので、置換はできません。 シャドウ コピー自体は、"アセンブリ" ならば問題なくされるはずです。 .resource 何かはダメなので、アセンブリ化するんですよね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-02-22 13:31
Web.ConfigのnumRecompilesBeforeAppRestartエントリにてWebApplicationのリセットがかかるまでに置換可能なファイル数を指定できます。 但し下記に注意という事で(自動翻訳なので判りにくいんですが)。 http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B319947 |