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


.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>


编译执行结果:试验失败。
客户端取得的结果是从本地加载执行的,不是服务器端提供的服务。
问题:如何知道服务器端提供哪些服务?如何请求这些服务?如何确定客户端获得服务端的服务了?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值