Remoting中事件跨程序传递的问题。服务器端的事件传递到客户段!!!顶也给分~~~~~
希望能实现订阅服务器端的事件的功能,但是系统提示安全异常"{"不允许类型 System.DelegateSerializationHolder 和从中派生的类型(例如 System.DelegateSerializationHolder)在此安全级别上被反序列化。"}"。
出错的地方的代码:
r_busitype.BusiTypeChanged += new ServerEvent(serverEvents.ServerEventHandle);
serverEvents.EventRaise += new ServerEvent(serverEvents_EventRaise);
//r_busitype 是服务器端的远程对象,当其他客户端修改了BusiType后就会激活BusiTypeChanged 事件,serverEvents是类EventPasser 的一个实例。现在是执行到第一行时就提示错误了。
我也实现了一个事件重现器
public class EventPasser : MarshalByRefObject
{
/// <summary>
///
/// </summary>
public event ServerEvent EventRaise;
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void ServerEventHandle(object sender, PassableEvent e)
{
if (EventRaise != null)
EventRaise(sender, e);
}
}
[Serializable]
public class PassableEvent : EventArgs
{
}
客户端和服务器端的配置文件也设置了序列化级别
<channels>
<channel ref="tcp" port="0"/>
<serverProviders>
<formatter ref="binary" typeFilterLevel="Full" />
</serverProviders>
</channels>
环境是.net 2.0。我想请教下我还有什么地方没有作对么?谢谢了。
问题点数:100、回复次数:16Top
1 楼shixin1198(好好学习 天天上上)回复于 2006-06-05 13:52:57 得分 10
关心 帮顶Top
2 楼xiyun(Cancer)回复于 2006-06-05 19:18:35 得分 0
Up~~~~~~~~~
Top
3 楼Firestone2003(笨笨小猪)回复于 2006-06-05 21:23:06 得分 10
web service方面接触不多,学习ingTop
4 楼winxieddd(一剑飘香)回复于 2006-06-05 22:16:52 得分 10
嘿嘿,我也想知道!:)
以前问过,无果。Top
5 楼ilovejolly(有些伤感)回复于 2006-06-06 10:52:14 得分 10
markTop
6 楼fire_qu(金迷之蓝色忧郁)回复于 2006-06-06 11:31:52 得分 10
友情UP,和楼主共同进步Top
7 楼xiyun(Cancer)回复于 2006-06-06 14:50:01 得分 0
UpUpUp!!!!!!!!!!!!!!!!!
真的就没人对Remoting十分了解了么??Top
8 楼xiyun(Cancer)回复于 2006-06-12 10:41:07 得分 0
Up~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Help~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
救命啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Top
9 楼xwpxly(天藍可凡)回复于 2006-06-12 10:44:32 得分 10
頂!
Top
10 楼czhenq(...... fucking life. I want to change.)回复于 2006-06-12 19:38:18 得分 10
设置序列化的级别
BinaryServerFormatterSinkProvider serverProvider = new BinaryServerFormatterSinkProvider();
BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider();
serverProvider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
服务器端、客户端都需要进行设置Top
11 楼anheizhizi(目标:★★★★★)回复于 2006-06-13 15:54:59 得分 10
帮你顶Top
12 楼withjun(withjun)回复于 2006-06-14 12:09:34 得分 10
关注ingTop
13 楼flyzq()回复于 2006-06-15 17:32:46 得分 10
学习Top
14 楼xiyun(Cancer)回复于 2006-06-17 13:46:31 得分 0
czhenq(原来是心累了.Http://czhenq.cnblogs.com) :
我不是在配置文件里设置了序列化级别么Top
15 楼xiyun(Cancer)回复于 2006-07-13 21:03:22 得分 0
Ok..是我自己把配置文件写错了。。。艾,又是白给分。。郁闷Top
16 楼OneGip(快信网王计平)回复于 2006-07-18 17:55:42 得分 0
port=0, 居然有这种人, 不会报错吗, 我去试试Top




