2006年10月30日

.Net Remotingで CAO

  
.Net Remotingで CAO(Client Activate Object) を利用したいのだが、IISでホストすることはできないのかな?
調べたけれど、.configファイルの書き方が良くわからない。
SingletonやSingleCallはOKなのでが、CAOはやはりだめなんだろうか。
ステートレスが前提のHTTPプロトコルで、ステートフルの処理をやろうというのが、そもそもの間違いのような気もするが...


この記事へのコメント
はじめまして。

今日ちょうどそんなテストコードを作成していたところです。

SingleCall でファクトリークラス(インターフェース)を定義して、
そのファクトリーに目的のインスタンスを生成して返すメソッドを実装すれば、
クライアント側でインスタンスの生殺を管理できそうですよ。

クライアント側で Dispose するまで
サーバー側では Dispose もファイナライザも実行されないみたいですから。
Posted by masa at 2006年11月02日 12:40
ただ、tcp でテストしています。
http だと、IIS がからむと、というのはちょっとわかりません。
Posted by masa at 2006年11月02日 12:41
masa さん、コメントありがとうございます。
ウインドウズサービズでホストしているのでしょうか。
たぶん、その環境ならば可能だと思うのですが、IISでホストしようとしたときに、どう構成ファイルを書けば良いのかわかりませんでした。
いろいろ試しましたが、上手く行きませんでした。
今、手元に確認できる環境がないのですが、週明けにでも、構成ファイルを使わずに、コードだけで接続する方法も試してみます。
Posted by Gushwell at 2006年11月02日 21:15
MSDN「.NET リモーティング構成ファイルのフォーマット」
http://www.microsoft.com/japan/msdn/net/general/remotingconfig.aspx

IISかどうかによって構成ファイルの内容に違いが出るかどうかはわかりませんが、WellKnown ではなく Activated としていますか?

私が今テストしているのはリモート/ローカルの選択までを視野に入れている(リモート環境がなくてもローカルで動作させたり)ため、独自のXMLファイルで必要なパラメーターを設定する方法で考えています。結局 Remoting 関連は同じようなプロパティを記述することになるんですけどね。
Posted by masa at 2006年11月06日 09:37
はい、WellKnown ではなく Activatedとしてますが、IIS側の設定で気になった点があるので、再度見直してみます。
ただ、ほかのこともやらなくてはいけなくて、これを調べている時間がない...(T T)

Posted by Gushwell at 2006年11月07日 19:57
 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/50626495