Remoting mit ipc channels

01/08/2008 - 19:10 von Olli Goessler | Report spam
Hi Leute,

ich sitze offenbar wieder mal auf der Leitung und hoffe Ihr habt einen Tip
fuer mein Problem.
Framework 2.0, in einer Application moechte ich zwei ipc channels
registrieren:

Klasse A:
System.Collections.IDictionary properties = new
System.Collections.Hashtable();
properties["authorizedGroup"] = "Jeder";
properties["priority"] = "20";
properties["portName"] = "decoderserver";

//IPC port name
IpcServerChannel s_IpcChannel = new IpcServerChannel(properties, null,
null);
ChannelServices.RegisterChannel(s_IpcChannel, true);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(OnlineDecoderDataExchange),
"DecoderCommunication",
WellKnownObjectMode.SingleCall);

Klasse B:
System.Collections.IDictionary properties = new
System.Collections.Hashtable();
properties["authorizedGroup"] = "Jeder";
properties["priority"] = "20";
properties["portName"] = "server";

//IPC port name
IpcServerChannel s_IpcChannel = new IpcServerChannel(properties, null,
null);
ChannelServices.RegisterChannel(s_IpcChannel, true);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(FrontendDataExchange),
"FrontendCommunication",
WellKnownObjectMode.SingleCall);


Mein Problem ist das sich immer nur der erste ipc channel den ich anwerfe
(wenn zuerst Klasse A dann A, wenn zuerst Klasse B dann B) registrieren
laesst, beim zweiten bekomme ich immer die Exception: "Der Channel ipc
server wurde bereits registriert" bekomme. Die Portnamen sind aber
unterschiedlich, ich sehe einfach nicht wo das Problem liegt

Vielen Dank und liebe Gruesse
Olli
 

Lesen sie die antworten

#1 Frank Dzaebel
02/08/2008 - 08:36 | Warnen spam
Hallo Olli,

in einer Application moechte ich zwei ipc channels registrieren:
[...] properties["authorizedGroup"] = "Jeder";
[...] properties["portName"] = "server";



Es ginge wohl mit einem anderen ChannelName:

properties["name"] = "ipc"+className;

Der "IpcChannel.ChannelName" ist bei Dir implizit
immer mit "ipc" belegt.

Hier auch ein kleines Testprojekt (aber ohne zwei Klassen)
http://Dzaebel.net/Downloads/Remoti...Client.zip



"Der Channel ipc server wurde bereits registriert" bekomme. Die Portnamen
sind aber unterschiedlich


Du kannst keinen Channel registrieren, der einen
bestimmten Anschluss mehr als einmal überwacht. Auch
wenn Channels pro Anwendungsdomàne registriert sind,
können verschiedene Anwendungsdomànen auf einem
einzelnen Computer nicht die gleiche Channelüberwachung
auf demselben Anschluss registrieren.

[Channels] -> Channelregeln
http://msdn.microsoft.com/de-de/lib...d3wha.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen