如何在远程处理中从其他计算机访问远程对象

时间:2013-08-08 04:57:28

标签: c# winforms remoting

我有一个服务器对象

 TcpChannel tcp = new TcpChannel(1234);
        ChannelServices.RegisterChannel(tcp, false);
        string s = ConfigurationManager.AppSettings["remote"];
        RemotingConfiguration.RegisterWellKnownServiceType(typeof(TestRemoting.InitialClass1), "TestRemoting", WellKnownObjectMode.Singleton);
        Console.WriteLine("Server is running on 1234 channel...");
        Console.WriteLine("Press Enter to Stop");
        Console.ReadLine();

我正在以客户端形式访问该对象,如

 InitialClass1 Icls = (InitialClass1)Activator.GetObject(typeof(InitialClass1), "tcp://localhost:1234//TestRemoting");

现在我将远程对象保存在另一台计算机上。如何从该计算机访问我的服务器对象。如果我从我的(本地)计算机访问服务器对象,我将使用

"tcp://localhost:1234//TestRemoting"

我在这里使用 localhost ,因为我的服务器对象和我的客户端是相同的。所以如果这两者不同,我该如何访问服务器对象。 我尝试了另一台计算机IP 如

tcp://200.100.0.52:1234//TestRemoting

那个时候我得到一个例外

A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 200.100.0.52:1234

1 个答案:

答案 0 :(得分:1)

该消息表示客户端无法找到服务的大部分时间。您可以使用以下步骤确定连接失败的位置:

  1. 检查服务是否在远程计算机上运行。
  2. 检查端口号是否正确。
  3. 从客户端ping远程计算机。
  4. 在端口服务号上打开远程计算机的telnet会话。
  5. 失败的步骤表明它失败的原因。