Announcement

Collapse
No announcement yet.

Vor dem Aufruf von DispatchChannelSink wurde keine Meldung deserialisiert

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Vor dem Aufruf von DispatchChannelSink wurde keine Meldung deserialisiert

    hallo,

    Ich möchte eine (folgende Art) TCP Verbindung zwischen Client und Server () erstellen. Das ist ein kleine Windows/Konsoleanwendung unter .Net Remoting. Dann habe ich den Fehler unter bekommen. Könntet ihr bitte mir einen Tipp geben?

    Bei Server:
    Code:
    SoapServerFormatterSinkProvider serverFormatter = new SoapServerFormatterSinkProvider();
                serverFormatter.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
                Hashtable ht = new Hashtable();
                ht["name"] = "ServerChannel";
                ht["port"] = 9001;
    
                TcpChannel channel = new TcpChannel(ht, null, serverFormatter);
                ChannelServices.RegisterChannel(channel, false);
    Bei Client:
    Code:
    TcpChannel channel = new TcpChannel(port);
                ChannelServices.RegisterChannel(channel, false);
                // now create a transparent proxy to the server component
               
                object obj = Activator.GetObject(typeof(RemoteObj.ClientToServerDialog),
                    "Tcp://" + serverAdr + ":9001/Test");
    Der Fehler daraus lautet:
    Fehler beim Verarbeiten der Anforderung auf dem Server: System.ArgumentNullException: Vor dem Aufruf von DispatchChannelSink wurde keine Meldung deserialisiert.
    Parametername: requestMsg
    bei System.Runtime.Remoting.Channels.DispatchChannelSi nk.ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders, Stream& responseStream)
    bei System.Runtime.Remoting.Channels.SoapServerFormatt erSink.ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders, Stream& responseStream)
    bei System.Runtime.Remoting.Channels.Tcp.TcpServerTran sportSink.ServiceRequest(Object state)
    bei System.Runtime.Remoting.Channels.SocketHandler.Pro cessRequestNow()
    vielen Dank

    Gruss

    Burkut
    Zuletzt editiert von burkut; 14.09.2009, 20:08.

  • #2
    Erledigt ( Vor dem Aufruf von DispatchChannelSink wurde keine Meldung deserialisiert)

    ich habe das Problem mit meiner TCP Verbindung anderes gelöst. Es ist erledigt.

    Bei Server:

    [highlight=c#]SecurityIdentifier Sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
    NTAccount Account = (NTAccount)Sid.Translate(typeof(NTAccount));

    Hashtable h = new Hashtable();
    h.Add("impersonationLevel", "None");
    h.Add("authorizedGroup", Account.Value);
    h.Add("name", "ServerChannel");
    h.Add("port",9001);
    BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();

    provider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilter Level.Full;


    TcpChannel serverChannel = new TcpChannel(h,null,provider);
    [/highlight]

    bei Client:

    [highlight=c#] TcpChannel channel = new TcpChannel(port);
    ChannelServices.RegisterChannel(channel, false);


    object obj = Activator.GetObject(typeof(RemoteObj.ClientToServe rDialog),
    "Tcp://" + serverAdr + ":9001/test");[/highlight]

    Danke Euch trotzdem...

    Gruss

    Burkut

    Comment

    Working...
    X