您的位置:首页 > 编程语言

应用框架的设计与实现——.NET平台4.2代码测试

2006-12-07 19:50 741 查看
.NET远程对象:
激活方式『服务器激活、客户端激活』
类似于:聊天室客服、电话客服

服务器激活『单体、单一调用』
单体方式:服务器端的一个远程对象为所有的请求服务;
单一调用:服务器为每次请求生成一个新对象来提供服务,只为一次调用服务,为一个方法调用服务;
如果客户端持有远程对象代理就可以对同一远程对象多次调用。

==============================================================================
应用框架的设计与实现——.NET平台(4)
4.2.3 .NET Remoting 实例

参照编码,执行代码:
using System;
using System.Collections.Generic;
using System.Text;

namespace BusinessObjectLibrary
{
public class BusinessObject
{
public string hi()
{
return "Hello World! (server)";
}
}
}

服务器端:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Remoting;

using BusinessObjectLibrary;

namespace ServerPrj
{
public class Class1
{
public static void Main()
{
RemotingConfiguration.Configure("ServerPrj.exe.config");
Console.WriteLine("Press enter to exit the application");
Console.ReadLine();
}
}
}

配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown
mode="Singleton"
type="BusinessObjectLibrary.BusinessObject,BusinessObjectLibrary"
objectUri="BusinessObject.rem" />
</service>
<channels>
<channel ref="http" port="8989"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>

客户端:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Runtime.Remoting;

using BusinessObjectLibrary;

namespace Clientproj
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new Form1());

RemotingConfiguration.Configure("Clientproj.exe.config");
BusinessObject bo = new BusinessObject();
MessageBox.Show(bo.hi());
}
}
}

配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application name="Client">
<client>
<wellknown url="http://localhost:8989/BusinessObject.rem"
type="BusinessObjectLibrary.BusinessObject, BusinessObjectLibrary" />
</client>
</application>
</system.runtime.remoting>
</configuration>

编译执行结果:试验失败。
客户端取得的结果是从本地加载执行的,不是服务器端提供的服务。
问题:如何知道服务器端提供哪些服务?如何请求这些服务?如何确定客户端获得服务端的服务了?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐