[Mono-devel-list] Problem with Remoting between Windows and Linux

Jean-Marc André jeanmarc.andre at cpe.fr
Tue Jun 8 12:20:38 EDT 2004


Hi,

Could you please fill a bug report on http://bugzilla.ximian.com 
(joining the source files of your test case application).

Thank you.

Clinton A. Pierce a écrit :

> Using MCS 0.95 and Mono 0.95 the following client/server pair works 
> fine (shortened example from ORA's Programming C#) as long as the 
> client and the server are on the same architecture.
>
> Server Client
>   Linux-Linux        OK
> Win32-Win32 (2k) OK
>   Linux-Win32       Fails
> Win32-Linux         Cannot test, firewalls
>
> The error that is thrown in the client is:
>     "The object with ID 1 was referenced in a fixup but does not exist."
>
> When running the client under Windows and the server under Linux.  The 
> error occurs at the line:
>
>      double sum = calc.Add((double)3.0, (double)4.0);
>
> Recommendations?
>
>
> Server Code:
>
> using System;
> using System.Runtime.Remoting;
> using System.Runtime.Remoting.Channels;
> using System.Runtime.Remoting.Channels.Http;
> namespace MyServer
> {The object with ID 1 was referenced in a fixup but does not exist.
>        public class Calculator : MarshalByRefObject, ICalc
>         {
>                 public Calculator()
>                 {
>                         Console.WriteLine("Calculator Constructor...");
>                 }
>                 public double Add(double x, double y)
>                 {
>                         Console.WriteLine("Called add...");
>                         return x + y;
>                 }
>                 public double Mult(double x, double y)
>                 {
>                         Console.WriteLine("Called mult...");
>                         return x * y;
>                }
>         }
>         public class ServerTest
>         {
>                 public static void Main()
>                 {
>                         HttpChannel chan = new HttpChannel(65100);
>                         ChannelServices.RegisterChannel(chan);
>                         Type calcType =
>                                 Type.GetType("MyServer.Calculator");
>                         
> RemotingConfiguration.RegisterWellKnownServiceType
>                                 (calcType, "theEndPoint",
>                                         WellKnownObjectMode.SingleCall);
>                         Console.WriteLine("Press [enter] to exit...");
>                         Console.ReadLine();
>                 }
>         }
> }
>
>
> Client Code:
> using System;
> using System.Runtime.Remoting;
> using System.Runtime.Remoting.Channels;
> using System.Runtime.Remoting.Channels.Http;
> namespace MyServer
> {
>         class Class1
>         {
>                 [STAThread]
>                 static void Main(string[] args)
>                 {
>                         HttpChannel chan = new HttpChannel(0);
>                         ChannelServices.RegisterChannel(chan);
>                         MarshalByRefObject obj = (MarshalByRefObject)
>                                         
> RemotingServices.Connect(typeof(MyServer.ICalc),
>                                                 
> "http://127.0.0.1:65100/theEndPoint");
>                         try
>                         {
>                                 MyServer.ICalc calc = obj as 
> MyServer.ICalc;
>                                 double sum = calc.Add((double)3.0, 
> (double)4.0);
>                                 Console.WriteLine("Sum: " + 
> sum.ToString());
>                         }
>                         catch (System.Exception ex)
>                         {
>                                 Console.WriteLine("Exception caught: 
> \n" + ex.Message);
>                         }
>                         return;
>                 }
>         }
> }
>
> This code should be compiled to a DLL and used as a resource to both:
> using System;
> namespace MyServer
> {
>     public interface ICalc
>     {
>         double Add(double x, double y);
>         double Mult(double x, double y);
>     }
>
> }
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list





More information about the Mono-devel-list mailing list