知识大全 让.NET Remoting更快些-IPCChannel

Posted

篇首语:将相本无种,男儿当自强。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 让.NET Remoting更快些-IPCChannel相关的知识,希望对你有一定的参考价值。

让.NET Remoting更快些-IPCChannel  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  IPCChannel是 NET Framework 里面新增的 它使用 Windows 进程间通信 (IPC) 系统在同一计算机上的应用程序域之间传输消息 在同一计算机上的应用程序域之间进行通信时 IPC 信道比 TCP 或 HTTP 信道要快得多 但是IPC只在本机应用之间通信 所以 在客户端和服务端在同一台机器时 我们可以通过注册IPCChannel来提高Remoting的性能 但如果客户端和服务端不在同一台机器时 我们不能注册IPCChannel

  下面让我们来看看如何使用IPCChannel

  首先我们定义一个RemotingObject类

  

  using System; // 远程对象 public class RemoteObject : MarshalByRefObject private int callCount = ; public int GetCount() Console WriteLine( GetCount has been called ); callCount++; return(callCount);

  接下来我们编写服务端代码

  

  using System; using System Runtime Remoting Channels Ipc; using System Security Permissions; public class Server [SecurityPermission(SecurityAction Demand)] public static void Main(string[] args) // 创建一个IPC信道 IpcChannel serverChannel = new IpcChannel( TestChannel ); // 注册这个IPC信道 System Runtime Remoting Channels ChannelServices RegisterChannel(serverChannel); // 打印这个信道的名称 Console WriteLine( The name of the channel is serverChannel ChannelName); // 打印这个信道的优先级 Console WriteLine( The priority of the channel is serverChannel ChannelPriority); // 打印这个信道的URI数组 System Runtime Remoting Channels ChannelDataStore channelData =(System Runtime Remoting Channels ChannelDataStore) serverChannel ChannelData; foreach (string uri in channelData ChannelUris) Console WriteLine( The channel URI is uri); // 向信道暴露一个远程对象 System Runtime Remoting RemotingConfiguration RegisterWellKnownServiceType(typeof(RemoteObject) RemoteObject rem System Runtime Remoting WellKnownObjectMode Singleton); Console WriteLine( Press ENTER to exit the server ); Console ReadLine(); Console WriteLine( The server is exiting );

  客户端代码

  

  using System; using System Runtime Remoting Channels Ipc; using System Security Permissions; public class Client [SecurityPermission(SecurityAction Demand)] public static void Main(string[] args) // 创建一个IPC信道 IpcChannel channel = new IpcChannel(); // 注册这个信道 System Runtime Remoting Channels ChannelServices RegisterChannel(channel); // 注册一个远程对象的客户端代理 System Runtime Remoting WellKnownClientTypeEntry remoteType = new System Runtime Remoting WellKnownClientTypeEntry(typeof(RemoteObject) ipc://TestChannel/RemoteObject rem ); System Runtime Remoting RemotingConfiguration RegisterWellKnownClientType(remoteType); RemoteObject service = new RemoteObject(); Console WriteLine( The client is invoking the remote object ); Console WriteLine( The remote object has been called times service GetCount());

  主要代码就算完成了 但 还有一个问题 那就是如果服务端和客户端在不同的Windows帐户运行的时候 会有验证权限的问题 对于这个问题 我们只要把服务端的信道注册代码改一下就好了

  

  Hashtable ht = new Hashtable(); ht[ portName ] = TestChannel ; ht[ name ] = ipc ; ht[ authorizedGroup ] = Everyone ; serverChannel= new IpcChannel(ht null provider);

cha138/Article/program/net/201311/13151

相关参考

知识大全 .NET Remoting程序开发入门篇

.NETRemoting程序开发入门篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一Remoti

知识大全 .NET Remoting 实现分布式数据库查询

.NETRemoting实现分布式数据库查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  开始

知识大全 基于消息与.Net Remoting的分布式处理架构

基于消息与.NetRemoting的分布式处理架构  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 解Remoting无法传输存储过程参数

解Remoting无法传输存储过程参数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在项目的开发中

知识大全 详解Remoting序列化及租约

详解Remoting序列化及租约  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天就先谈谈Re

知识大全 本人很年轻,很想摆脱上班的苦恼。·如果身上只有5000块钱,能做些什么可以让自己快速的融入到社会

本人很年轻,很想摆脱上班的苦恼。·如果身上只有5000块钱,能做些什么可以让自己快速的融入到社会多交朋友!如何让自己更快的融入到人群里?社会是一个大集体,各种各样的人都有,要想更快的融入必须全身心的投

知识大全 DWR - Direct Web Remoting 实际使用

DWR-DirectWebRemoting实际使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 .NET程序员应该知道些什么

.NET程序员应该知道些什么?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前些日子我发了一份

怎样护理可以让鱼鳞病好的更快

这篇文章介绍,怎样护理可以让鱼鳞病好的更快。虽然,鱼鳞病难以痊愈。但是,我们如果做到了科学的护理。那么,鱼鳞病是不会太影响我们的正常生活的。那么,要怎样护理,才可以让鱼鳞病好的更快呢?第一,鱼鳞病的护

怎样护理可以让鱼鳞病好的更快

这篇文章介绍,怎样护理可以让鱼鳞病好的更快。虽然,鱼鳞病难以痊愈。但是,我们如果做到了科学的护理。那么,鱼鳞病是不会太影响我们的正常生活的。那么,要怎样护理,才可以让鱼鳞病好的更快呢?第一,鱼鳞病的护