【问题标题】:.NET Remoting - Proxy Problem.NET Remoting - 代理问题
【发布时间】:2011-05-26 10:41:06
【问题描述】:

我在服务器上有 RemoteRamdom 类:

服务器:

public class RemoteRandom : MarshalByRefObject
{
    Random r = new Random();

    public Random GetRandomObject()
    {
        return r;
    }
}

客户:

        RemoteRandom remoteRandom = (RemoteRandom)Activator.GetObject(typeof(RemoteRandom), "tcp://localhost:1000/UzakNesne");
        Random r = remoteRandom.GetRandomObject();

        while (true)
        {
            Console.WriteLine(r.Next());
        }

问题:客户端可以成功调用GetRandomObject方法。但是,当我调用 r 实例的方法时,它会在本地运行。我的意思是,即使我关闭了服务器应用程序,r.Next() 也会继续工作。

r 如何在服务器上工作?

【问题讨论】:

    标签: .net remoting rmi rpc .net-remoting


    【解决方案1】:

    返回的对象 r 将被序列化并在本地重新创建,因为 Random 类被标记为可序列化并且不继承自 MarshalByRefObject。

    您可以像创建 remoteRandom 一样在服务器上创建 r,尽管您只能从客户端访问它。

    【讨论】:

      【解决方案2】:

      你确定它是一个远程对象吗?

      您的代码基本上没有显示将激活器重定向到实际从服务器引用类的配置。在没有配置的情况下,激活器将愉快地创建一个 LOCAL CLASS。

      【讨论】:

      • 配置是通过解决方案中的 .config 文件完成的。我只是跳过了细节。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多