ServicedComponentから派生した.netクラスを作成し、COM+に登録しました。このコンポーネントが実装するインターフェースには、IDataReaderを返すメソッドがあります。クライアントアプリケーションからサービスコンポーネントを呼び出すと、すべてが機能します。IDataReaderを返すメソッドを呼び出すことは問題ありませんが、オブジェクトのメソッドを呼び出すとすぐに、次の例外が発生します。 "System.Runtime.Remoting.RemotingException:このリモート処理プロキシにはチャネルシンクがありません。つまり、サーバーにリッスンしているサーバーチャネルが登録されていないか、このアプリケーションにサーバーと通信するための適切なクライアントチャネルがありません。」
私は自分のコードをかなりハッキングし、シリアル化可能な(Serializable属性を持つ)IDataReaderの独自の実装を作成すれば機能することに気づきました。実装がMarshalByRefObjectから派生している場合、失敗します。
それで、COM + ServicedComponentsからの参照によって標準の.netオブジェクトを返すことは可能ですか?もしそうなら、それを達成するために何をする必要がありますか?