有三个主要的障碍:
1、服务器解析不到客户端的assembly,因为callback的代码在客户端的assembly中
2、TypeFilterLevel默认不是Full
3、普通callback代码不能访问客户端的变量,因为不是serializable的
解决办法:
1、利用AppDomain的AssemblyResolve事件,让自己来处理assembly的查找逻辑。并且让客户端在开始的时候把自己的assembly位置发给服务器。
2、
BinaryServerFormatterSinkProvider serverFormatter = new BinaryServerFormatterSinkProvider();
serverFormatter.TypeFilterLevel = TypeFilterLevel.Full;
Hashtable properties = new Hashtable();
properties.Add("portName", "thoughtworks");
IpcChannel channel = new IpcChannel(properties, null, serverFormatter);
3、把callback放在MarshalByRefObject之中。并且让客户端注册自己的channel。这样服务器就会真的callback了,callback代码也是执行在客户端中。
分享到:
相关推荐
Microsoft .NET RemotingMicrosoft .NET Remoting Microsoft .NET RemotingMicrosoft .NET Remoting Microsoft .NET RemotingMicrosoft .NET Remoting
使用.NET Remoting从服务器主动发出事件通知客户端(远程广播) 经常看见有人问:使用.NET Remoting如何从服务器主动发出事件通知客户端?的确,初接触.NET Remoting的人多半会有这样的疑问,因为大部分的文章和...
Advanced .NET Remoting.pdf
VB.NET Remoting 技术手册VB.NET Remoting 技术手册
一个.NET Remoting的简单实例,源码,打开即用,适合新手和做测试的相关技术人员。
Microsoft .Net Remoting系列专题
一个很简单的.net remoting 实例,如果你懂得这种技术建议你就不用下了,这个只是知道.net remoting ,但是不知道什么原理的同学下载学些,知道是如何进行操作的。代码包含服务端、客户端和接口实例。简单的描述了...
演示如何使用.net Remoting示例,从而更好的学习和使用.net Remoting
.Net Remoting技术.pdf
介绍.net下的Remoting技术. Microsoft .Net Remoting系列专题之一
基于.NET Remoting实现了一个工作在局域网的聊天室程序,包含一个.NET SVR,客户端(窗口程序)。 程序充分演绎了.net remoting事件双向订阅的应用方法。
基于.NET Remoting的分布式系统实现.pdf
.Net Remoting非常简单范例代码
一个C#.NET Remoting示例 ChannelServices.RegisterChannel(new TcpChannel(9090), true); RemotingConfiguration.ApplicationName = "HelloServiceApplication"; RemotingConfiguration....
C# .Net Remoting 两个简单示例,一个为普通的,一个为工厂模式的,更为安全一点.简单范例却是打好了一个框架,想要做东西,扩展就可以了. 使用说明和运行截图:http://www.our-code.com/news/2010105/n4920152.html 关于2...
Advanced .NET Remoting_2nd.pdf
深度挖掘.NET Framework 2.0(8):实战.NET Remoting(下)
.NET Remoting 实现远程数据库访问源码 实际可用的
Advanced .NET Remoting 第二版, 内容为纯英文,有兴趣的朋友可以下来看看。
VB.NET Remoting 技术手册.rar