`
ruilinruirui
  • 浏览: 1049094 次
文章分类
社区版块
存档分类
最新评论

C#构建一个简单的分布式应用程序(.net远程处理)

 
阅读更多

由3个.NET程序集构成:

SimpleRemotingAsm.dll

SimpleRemoteObjectServer.exe

SimpleRemoteObjectClient.exe

下面是代码

SimpleRemotingAsm控制台程序

using System;
using System.Collections.Generic;
using System.Text;

namespace SimpleRemotingAsm
{

//这个类型在被远程访问时会以引用方式封送(MBR)
public class RemoteMessageObject : MarshalByRefObject
{
public RemoteMessageObject()
{
Console.WriteLine("Constructing RemoteMessageObject!");


}
//这个方法从调用那里获取一个输入字符串
public void DisplayMessage(string msg)
{
Console.WriteLine("Message is:{0}", msg);
}
//这个方法把值返回调用方
public string ReturnMessage()
{
return "Hello from the server";
}
}

}

SimpleRemoteObjectServer控制台程序

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using System.Runtime.Remoting;

namespace SimpleRemoteObjectServer
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("*****SimpleRemoteObjectServer started!******");
Console.WriteLine("Hit enter to end");

//注册一个新的信道
HttpChannel c = new HttpChannel(32469);
ChannelServices.RegisterChannel(c, false);

//注册一个WKO类型,使用单例激活

RemotingConfiguration.RegisterWellKnownServiceType(typeof(SimpleRemotingAsm.RemoteMessageObject), "RemoteMsgObj.soap", WellKnownObjectMode.Singleton);
Console.ReadLine();
}
}
}

SimpleRemoteObjectClient控制台程序

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using System.Runtime.Remoting;
using SimpleRemotingAsm;

namespace SimpleRemoteObjectClient
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("*****SimpleRemoteObjectClient started!******");
Console.WriteLine("Hit enter to end");
//注册一个新的信道
HttpChannel c = new HttpChannel();
ChannelServices.RegisterChannel(c,false);

//注册一个WKO类型
object remoteObj = Activator.GetObject(typeof(SimpleRemotingAsm.RemoteMessageObject),"http://localhost:4313/RemoteMsgObj.soap");
//现在使用远程对象
RemoteMessageObject simple = (RemoteMessageObject)remoteObj;
simple.DisplayMessage("Hello from the client");
Console.WriteLine("Server says:{0}",simple.ReturnMessage());
Console.ReadLine();

}
}
}

分享到:
评论

相关推荐

    基于.net Remoting技术的分布式图书管理系统(修正版)

    分布式图书管理系统(C#),这是模仿本站的一个程序。但代码模式更简洁更易读更易调试。利用.net的remoting技术很好地实现了局域网内程序域的互访问题。经测试发布不完全版本,有兴趣地可以研究一下。文件夹结构:...

    asp.net知识库

    ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu ) 体验.net2.0的优雅(3) -- 为您的 SiteMap 添加 控制转发功能 GridView控件使用经验 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! ASP.NET2.0控件...

    NET组件程序设计 第2版中文版.part3.rar )

    构建分布式应用程序 租赁和赞助 .NET与位置透明 第11章:上下文与拦截 .NET组件服务 .NET上下文 自定义组件服务 第12章:安全 .NET安全架构 配置权限 编程式安全 Visual Studio 2005与安全 基于主体的安全 其他安全...

    C#微软培训资料

    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...

    ASP.NET的网页代码模型及生命周期

    在创建了ASP.NET应用程序后,系统同样会默认创建一个Default.aspx页面,不同的是,多出了一个Default.aspx.designer.cs,用来初始化页面控件,一般不需要修改。 4.1.5 ASP.NET网站和ASP.NET应用程序的区别 在ASP.NET...

    hprose-dotnet:NET的Hprose 3.0

    NET的Hprose 3.0 包裹名字.NET平台最新版本下载 介绍Hprose是一个高性能的远程对象服务引擎。 它是一种现代,轻便,跨语言,跨平台,面向对象,高性能,远程动态通信中间件。 它不仅易于使用,而且功能强大。 您只...

    东西:我发现的一些东西

    下一个 记忆状态 NET标准的内存中事件源ACID事务性分布式对象图引擎 科学家网 .NET库,用于仔细重构关键路径。 它是GitHub的Ruby Scientist库的端口 ReactiveUI 动态数据 基于Rx.Net的React式集合 React性 ...

    ParallelTestRunner:允许使用Akka actor并行运行NUnit测试

    并行测试运行器 由Akka.NET支持的NUnit分布式测试...这是一个简单的NUnit tests.dll项目,请确保已将其复制到PTR.Server / Bin / Debug文件夹。 在打开的控制台应用程序窗口中,输入run tests.dll --localrun=2 。 这

Global site tag (gtag.js) - Google Analytics