Autor Beitrag
Criola
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Fr 22.02.08 14:45 
Hallo C#-Community!

Ich habe eine Client-Server-Applikation geschrieben bei der mehrere Clients einen Server per Remoting mit Daten versorgen.
Das klappt wunderbar.

Ich möchte aber nun, dass wenn ein Client einen Datensatz hochgeladen hat, diese Daten an alle verbundenen Clients geschickt werden.

Ich wollte das mit Events machen, erhalte aber eine SecurityException:
"Type System.DelegateSerializationHolder and the types derived from it (such as System.DelegateSerializationHolder) are not permitted to be deserialized at this security level."

Abgekürzt sieht mein Client-Code ungefähr so aus:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
TcpChannel channel = new TcpChannel(0);
ChannelServices.RegisterChannel(channel,false);

ChatService chatserv = (ChatService) Activator.GetObject(typeof(ChatService), "tcp://localhost:9090/Server/chatservice");

chatserv.updateText += new ChatService.UpdateEventHandler(testMethode2); //hier kommt die Exception


Wie kann ich die Sache umgehen und Events nutzen?

Vielen Dank!

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 22.02.08 15:06 
Ich habe mir zum Thema "Remoting und Events" folgende Lektüre notiert:

www.c-sharpcorner.co...TRemotingEvents.aspx

Außerdem gibt es auf www.codeproject.com verschiedene Beiträge dazu.

Nach einigem Hin und Her verzichte ich auf so Events. Stattdessen werden Server-Meldungen u.ä. in eine DataTable geschrieben; jeder Client holt sich einmal pro Minute die neuesten Informationen ab. (Eine solche Idee stand in einem der Beiträge.)

Gruß Jürgen