科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件C#中的远程执行和分布式计算

C#中的远程执行和分布式计算

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

远程执行是C#中一种使开发人员能够使用远程对象的基础架构。远程对象是一种位于调用者应用域之外的对象

作者:刘彦青 来源:Yesky 2007年11月14日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
建立对象主机(也被称作服务器)

  设立服务器需要作的第一步是在对象进行通讯的二个应用域间建立一条通道,它可以是一条TCP/IP通道或HTTP通道。TCP通道的速度较快,适用于对网络内信息包传输限制较少的网络使用,HTTP通道更灵活,适合在互联网等广域网上使用。

  我们将使用TCP/IP通道,而且将在同一台机器的二个不同的应用域名上同时运行服务器端和客户机端。因此,输入下面的代码在TCP/IP堆栈上的8065端口创建通道myChannel:

TcpChannel myChannel = new TcpChannel(8065);

  下面是向.NET的通道服务注册myChannel通道,这将使该通道可以在服务器应用域之外被访问。我们可以通过下面的代码实现这一目的:

ChannelServices.RegisterChannel(myChannel);

  最后一步是告诉.NET的远程执行基础架构有关我们要开放的对象的有关情况,我们需要公布对象的类型和位置,客户端定位对象所使用的名称和.NET的远程基础架构对对这一对象调用的处理方式。我们可以通过下面的代码获取对象的类型:

Type objectType = new MyCoolObject().GetType()

  通过下面的代码就可以向.NET远和基础架构注册该对象:

RemotingConfiguration.RegisterWellKnownServiceType(
objectType, "MyCoolObject",
WellKnownObjectMode.Singleton);

  对象的调用有二种处理方式:Singleton和SingleCall。在Singleton方式中,在第一次客户端方法调用时创建对象,并保持对象存在直到客户端中止连接或对象自然死亡;在SingleCall方式中,每次客户端的方法调用都会创建对象,对象只在方法调用持续期间存在,一旦方法调用结束,对象就会死亡。SingleCall方式中,客户端连接不会随方法调用的结束而中止,只有对象会随着方法调用的结束而被杀死。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章