【发布时间】:2008-09-25 12:29:33
【问题描述】:
我创建了一个派生自 ServicedComponent 的 .net 类,并将其注册到 COM+。该组件实现的接口有一个返回 IDataReader 的方法。当我从客户端应用程序调用服务组件时,一切正常,我可以调用返回 IDataReader 的方法没有问题,但是一旦我调用对象上的方法,我就会得到异常: “System.Runtime.Remoting.RemotingException : 此远程代理没有通道接收器,这意味着服务器没有注册的服务器通道正在侦听,或者此应用程序没有合适的客户端通道与服务器通信。”
我对我的代码进行了相当多的修改,并意识到如果我创建自己的可序列化(具有 Serializable 属性)的 IDataReader 实现,它将起作用。如果实现派生自 MarshalByRefObject 则失败。
那么,是否可以通过 COM+ ServicedComponents 的引用返回标准 .net 对象,如果可以,我需要做什么来实现它?
【问题讨论】: