2009-07-14 8 views
1

In meinem Fall benachrichtigt der Server den Client, seine Daten abzurufen, wenn die Daten bereit sind. Diese Benachrichtigung wird über ein Ereignis implementiert, das der Kunde abonnieren muss.Warum .NET-Remoting-Ereignisse vom Server Clients auf verschiedenen Computern nicht erreichen können

Beim Test im selben Computer wird der Client ohne Probleme benachrichtigt. Wenn der Client jedoch auf den anderen Computer verschoben wird, können die Benachrichtigungen nicht mehr abgerufen werden.

Ich überprüfte die Netzwerkverbindung und die Verfügbarkeit von Remoting-Dienst, und fand den Client auf das Remoting-Objekt marshalled auf dem Server zugreifen können, Ereignis-Abonnement war in Ordnung, ohne Ausnahmen.

Aber was mich verwirrt ist, dass tatsächlich das Ereignis des Servers == null, bedeutet, dass die Methode des Klienten nie hier registriert ist.

Kennt jemand die Ursache? Danke BR

Antwort

1

Zuerst würde ich in den Ereignisprotokollen auf dem Client und dem Server suchen, um zu sehen, ob es diesbezüglich Fehler gibt.

Zweitens, ist es die gleiche Benutzeridentität mit dem Remote-Client und mit dem lokalen Client? Gleicher angemeldeter Benutzer mit demselben Domänenkonto?

Was ist mit Firewall-Setup? Bist du sicher, dass Remoting erlaubt ist?

Zum Schluss, nur um sicher zu gehen: Ist Ihnen bewusst, dass Remoting jetzt zugunsten von WCF veraltet ist?

+0

- Sicher ist das Remoting erlaubt. - die Software basiert auf .net 2.0 –

+0

Ich sagte Firewall. Ist der Port für eingehenden Datenverkehr geöffnet? –

+0

Ja, die Firewall hat die eingehenden Nachrichten blockiert. Nachdem die Firewall entfernt wurde, sind die Ereignisse wie erwartet eingetroffen. Danke –

2

Jedes Clientobjekt, das für das Serverereignis registriert wird, sollte MarshalByRefObject sein und auf seine Assembly sollte vom Server verwiesen werden. Sie benötigen also Wrapper um Ereignisse, wenn Sie sie in Remoting verwenden möchten.

Vielleicht kann dieser Artikel Ihnen helfen.

http://aviadezra.blogspot.com/2008/06/code-snippets-remoting-client-server_19.html

+0

Wrapped sonst wird es Gebäudefehler melden –

0

Wenn remoting Anrufe beide Richtungen gehen, müssen Ports in beide Richtungen geöffnet werden kann was bedeutet, Ihr Server über einen Port zu öffnen, auf Ihre Kunden in der Lage sein muss. Sie haben zwei Steckdosen offen, bi-direktionale Kommunikation.

Verwandte Themen