Ik ben wat aan het stoeien met .NET Remoting.
Ik heb een Server-applicatie, een server object en een client applicatie.
M'n server-object is afgeleid van de MarshalByRefObject class en heeft een member van het type event.
Die class ziet er in short zo uit:
In m'n server application, 'registreer' ik m'n object (en een channel) dan als volgt:
Zoals je in bovenstaande code kunt zien, wil ik dat dat server-object als een singleton behandeld wordt.
In de client applicatie, maak ik dan een ref. naar een server object:
Daarna, wil ik een method aan m'n eventhandler toewijzen en daar gaat het fout:
Op die regel krijg ik dus een securityException
Iemand een idee wat ik nog over het hoofd zie?
Ik heb een Server-applicatie, een server object en een client applicatie.
M'n server-object is afgeleid van de MarshalByRefObject class en heeft een member van het type event.
Die class ziet er in short zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| public class MyClass : MarshalByRefObject { public event MyEvent; public MyFunction() { if( MyEvent != null ) { MyEvent(this, new MyEventArgs(blaat, blaat)); } } } |
In m'n server application, 'registreer' ik m'n object (en een channel) dan als volgt:
code:
1
2
3
4
5
| HttpChannel aChan = new HttpChannel(aportnummer); ChannelServices.RegisterChannel(aChan); RemotingConfiguration.RegisterWellKnownServiceType(typeof(MyClass), "uri", WellKnownObjectMode.Singleton); |
Zoals je in bovenstaande code kunt zien, wil ik dat dat server-object als een singleton behandeld wordt.
In de client applicatie, maak ik dan een ref. naar een server object:
code:
1
| MyClass test = (MyClass)Activator.GetObject(typeof(MyClass), "http://blaat/uri"); |
Daarna, wil ik een method aan m'n eventhandler toewijzen en daar gaat het fout:
code:
1
| test.MyEvent += new MyReceiverHandler(aFunctionName); |
Op die regel krijg ik dus een securityException
Nu heb ik al mbhv de .NET configuration wizards m'n assemblies full trust gegeven, maar dat blijkt niet te werken.Het type System.DelegateSerializationHolder en de typen die hiervan zijn afgeleid hebben geen toestemming om op dit beveiligingsniveau te worden gedeserialiseerd.
Iemand een idee wat ik nog over het hoofd zie?
https://fgheysels.github.io/