Avatar billede gulbaek Nybegynder
09. februar 2003 - 19:38 Der er 8 kommentarer og
1 løsning

Remoting: System.ArgumentNullExceptio

jeg er lige igang med at forsøge at forsøge mig med lidt remoting.

Men har det problem at hvergang jeg kompiler det i Visual Studio .NET får jeg følgende fejl.

An unhandled exception of type 'System.ArgumentNullException' occurred in mscorlib.dll

Additional information: Value cannot be null.


Gætter på at det er denne linie det er galt med.
RemotingConfiguration.RegisterWellKnownServiceType(
                Type.GetType("helloserver,object"),

Den komplette kode.

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

namespace RemotingSamples {
    public class Sample {
        public static int Main(string [] args) {
            TcpChannel chan = new TcpChannel(8085);
            ChannelServices.RegisterChannel(chan);
            RemotingConfiguration.RegisterWellKnownServiceType(
                Type.GetType("RemotingSamples.HelloServer,object"),
                "SayHello", WellKnownObjectMode.SingleCall);
            System.Console.WriteLine("Hit  to exit...");
            System.Console.ReadLine();
            return 0;
        }
    }
}

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

namespace RemotingSamples {
    public class HelloServer : MarshalByRefObject {
        public HelloServer() {
            Console.WriteLine("HelloServer activated");
        }

        public String HelloMethod(String name) {
            Console.WriteLine("Hello.HelloMethod : {0}", name);
            return "Hi there " + name;
        }
    }
}
Avatar billede naxosnaxos Nybegynder
09. februar 2003 - 21:27 #1
Prøv at fjerne ",object"  der hvor du registrer din type, så det bliver til
RemotingConfiguration.RegisterWellKnownServiceType(
                Type.GetType("RemotingSamples.HelloServer"),
                "SayHello", WellKnownObjectMode.SingleCall);
Avatar billede naxosnaxos Nybegynder
09. februar 2003 - 21:27 #2
og så var det lige som svar ;o)
Avatar billede gulbaek Nybegynder
09. februar 2003 - 21:48 #3
Takker det virkede, men jeg har lige et tillægsspørgsmål :-)

Følgende vi heller ikke kompile i Visual studio .net

Får følgende fejl.

The type or namespace name 'HelloServer' could not be found (are you missing a using directive or an assembly reference?)

Og fejlen ligger i denne linje
HelloServer obj = (HelloServer)Activator.GetObject(
                typeof(RemotingSamples.HelloServer),
                "tcp://localhost:8085/SayHello");

Komplet kode

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

namespace RemotingSamples
{
    public class Client
    {
        public static int Main(string [] args)
        {
            TcpChannel chan = new TcpChannel();
            ChannelServices.RegisterChannel(chan);
            HelloServer obj = (HelloServer)Activator.GetObject(
                typeof(RemotingSamples.HelloServer),
                "tcp://localhost:8085/SayHello");
            if (obj == null) System.Console.WriteLine("Could not locate server");
            else Console.WriteLine(obj.HelloMethod("Caveman"));
            return 0;
        }
    }
}
Avatar billede naxosnaxos Nybegynder
09. februar 2003 - 21:59 #4
Det jeg har brugt var godt nok via http, men omskrevet til dit må det give:
HelloServer obj =(HelloServer)  RemotingServices.Connect
                    (typeof(RemotingSamples.HelloServer), "tcp://localhost:8085/SayHello");

prøv med det...
Avatar billede gulbaek Nybegynder
09. februar 2003 - 22:06 #5
Det giver samme fejl.

Er det nødvendig at HelloServer.cs filen også befinder sig på Klienten ?
Avatar billede naxosnaxos Nybegynder
09. februar 2003 - 23:16 #6
nææ for det er jo den du henviser til
Avatar billede gulbaek Nybegynder
10. februar 2003 - 08:57 #7
Har du ikke en ide til hvad jeg kan gøre for at få det til at virke, jeg har lige uploaded hele mit project.

Jeg har også overvejet om man kunne løse det med et interface, men ved ikke om det er en optimal løsning.

www.gulbaek.net/dotnet/RemoteKlient.zip
www.gulbaek.net/dotnet/RemoteServer.zip
Avatar billede naxosnaxos Nybegynder
10. februar 2003 - 15:47 #8
prøv evt. det sample der er på gotdotnet i første omgang. Hvis det da stadig ikke virker, kan du skrive igen, for selvfølgelig vil jeg hjælpe ;o)
Avatar billede gulbaek Nybegynder
10. februar 2003 - 21:45 #9
fik det til at virke da jeg lavede et interface
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester