求救!!!使用Remoting的IPC时候的问题,我返回的错误消息是“???????????customexception???????”

simon8181 2008-04-21 09:46:41
我使用的Remoting的IPC协议进行通信。
我的服务器端做成了windows服务形式,客户端是应用程序。
客户端到服务器端是通过获取远程对象使用的,同时把客户端的函数
利用委托和服务器端的事件绑定上了。

现在遇到的问题是从客户端到服务器端使用一切正常,但是服务器端往回走的
时候出错,错误消息还是“???????????customexception???????”
这个样子的,请教大家。
...全文
185 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
simon8181 2008-04-22
  • 打赏
  • 举报
回复
EventWrapper我也继承MarshalByRefObject 了。
如果协议改成tcp,都好用。换成ipc就不行了,所以我觉得中间序列化的地方应该没有问题吧。
cyy1981 2008-04-22
  • 打赏
  • 举报
回复
EventWrapper继承MarshalByRefObject 了吗
cyy1981 2008-04-22
  • 打赏
  • 举报
回复
看看这篇文章吧,应该可以解决你的问题
你的事件也要继承MarsalByRefObject,要在channel中进行传送
cyy1981 2008-04-22
  • 打赏
  • 举报
回复
http://tech.it168.com/msoft/2007-12-26/200712260952829.shtml
huaer1011 2008-04-22
  • 打赏
  • 举报
回复
没碰到过~,支持下
cyy1981 2008-04-22
  • 打赏
  • 举报
回复
你应该是没catch到真正throw exception的地方
simon8181 2008-04-22
  • 打赏
  • 举报
回复
出错的log里面stack信息是空,错误消息是一堆问号
cyy1981 2008-04-22
  • 打赏
  • 举报
回复
wrapper.LocalReceivedEvent += new EventReceivedHandler(this.method);


这个也是subscribe的服务端的事件?

能得到详细的stack信息吗
ojekleen 2008-04-21
  • 打赏
  • 举报
回复
那应该没问题的吧,你有没有其他的联系方式?我们这样聊讲不清
simon8181 2008-04-21
  • 打赏
  • 举报
回复
不是Form_Load下,不过也类似。是在一个dll里面,用户画面可以调用的。
ojekleen 2008-04-21
  • 打赏
  • 举报
回复
我理解你的意思:整个Form为服务器端的,利用remting返回远程对象,你这样设计有点类似于WVC模式,而你就只要不停的发送Form的对象到客户端。

你的绑定
wrapper = new EventWrapper();
wrapper.LocalReceivedEvent += new EventReceivedHandler(this.method);
remoteObj.OnEventReceivedHandler += new EventReceivedHandler(wrapper.method);

是在Form_Load下执行的?

simon8181 2008-04-21
  • 打赏
  • 举报
回复
客户端到服务器端我是利用remoting的远程对象执行的
remoteObj = (IRemoteServer)Activator.GetObject(typeof(RemoteObject), "ipc://ipcname/RemoteObject");

然后绑定
wrapper = new EventWrapper();
wrapper.LocalReceivedEvent += new EventReceivedHandler(this.method);
remoteObj.OnEventReceivedHandler += new EventReceivedHandler(wrapper.method);

我的EventReceivedHandler是定义在服务器端的。
changjiangzhibin 2008-04-21
  • 打赏
  • 举报
回复
是客户端调服务端吧,晕
ojekleen 2008-04-21
  • 打赏
  • 举报
回复
以上纯是个人拙见,错误的地方尽管拍砖漫骂
ojekleen 2008-04-21
  • 打赏
  • 举报
回复
你这个设计是不是有问题,通常都是服务器端写委托(不管委托在哪),客户端写事件。如果你想把功能代码也放在服务器端,你可以通过客户端的事件触发来调用服务器端相应的方法(这步才涉及remoting),
你的事件写在服务器端?怎么触发啊?
simon8181 2008-04-21
  • 打赏
  • 举报
回复
因为客户端连接服务器端以后,同时把客户端的函数利用委托和服务器端的事件绑定上了。
我说的往回走,就是指服务器端触发事件,然后应该能走到客户端的函数里面,但是实际
上这个地方出错。
ojekleen 2008-04-21
  • 打赏
  • 举报
回复
没碰到过啊
服务器端往回走的时候出错

什么是往回走?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧