しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

ライフタイム

.NET Remoting 使ってるアプリで、しばらくほったらかしにしておくとサーバオブジェクトが NullReferenceExpcetion を投げることに気が付きました。調べてみると 5 分ほど呼び出しがなければ GC に回収されてしまうとのこと。
これを防ぐためには LifetimeServices を弄ればいいらしいので試してみました。

// チャネルを登録する前に 1 度だけ設定する!
LifetimeServices.LeaseTime = TimeSpan.FromHours(1);

2 回目からは例外を投げるので、私はメインフォームのコンストラクタで指定しました。ちなみに無限に延長は出来ないみたいですね。
試しに TimeSpan.MaxValue を指定したら例外吐いちゃいました。