.NET Remotingの接続維持

ログにこのネタで調べられた形跡があったので。

.NET RemotingはTCP/IP(HTTP含む)を使ったソケット通信です。.NET Remotingサーバーはhttpdやftpd同様、接続を受けるためにTCP/IPのポートを受信可能状態で開く(ChannelServices.RegisterChannel)わけですが、一定時間接続が無いと.NET Frameworkによって開いたポートが自動的に破棄され、サーバーが動いていてもクライアントが接続できなくなる場合があります。

これを避けるひとつの方法が、破棄されないようにすること。.NET Remotingとリース時間(Lease time)という単語で検索すると、出てくると思います。いろいろ方法はありますが例を挙げますと、

  • MarshalByRefObjectを継承したクラスでInitializeLifetimeServiceメソッドを以下のようにオーバーライドする。

    public overrides InitializeLifetimeService() { return null; }

  • 構成ファイル(XML)の//configuration/system.runtime.remoting/application以下に次の設定を加える。

    <lifetime leaseTime="0" />

[参考]Microsoft .NET リモーティング: 技術概要Link

— posted by mu at 11:20 am   commentComment [0]  pingTrackBack [0]

この記事に対する TrackBack URL:

設定によりTB元のページに、こちらの記事への言及(この記事へのリンク)がなければ、TB受付不可となりますのであらかじめご了承下さい。

コメントをどうぞ。 名前(ペンネーム)と画像認証のひらがな4文字は必須で、ウェブサイトURLはオプションです。

ウェブサイト (U):

タグは使えません。http://・・・ は自動的にリンク表示となります

:) :D 8-) ;-) :P :E :o :( (TT) ):T (--) (++!) ?;w) (-o-) (**!) ;v) f(--; :B l_P~ (QQ)

     

[X] [Top ↑]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.2306 sec.
prev
2007.6
next
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30