Einzelnen Beitrag anzeigen

Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#1

Anwendung aus Dienst gestartet kann aber nicht mit IPCChannel kommunizieren

  Alt 25. Nov 2010, 09:06
Delphi-Version: 2007
Hallo Leute,

ich habe eine Delphi2007.net Anwendung. Diese öffnet einen IPCChannel, wenn ich die Anwendung nochmal starte klappt alles.
Wenn ich die Anwendung aus einem Dienst heraus starte dann geht das leider nicht mehr. Der Dienst die Einstellung Datenaustausch zwischen "Dienst und Desktop zulassen".
Warum klappt das mit dem IPC dennoch nicht.

Hat da jemand ne Idee. Wäre echt klasse.

Nachtrag:

Problem soweit gelöst der Dienstbenutzer muss dem selben entsprechen wie der Angemeldete Benutzer der die Anwedung startet.


Meine Frage bleibt aber dennoch in sofern offen, warum das Benutzersesnitiv gesendet wird ich dachte es gibt Möglichkeit damit systemweit zu senden und die Anwendung die es will ( egal welcher Benutzer ) die Infos auch erhält.


Hier mal ein Source auszug

Aufruf aus der Anwendung die vom Dienst gestartet wird.

Delphi-Quellcode:
  Starttimer.enabled := false;
  ipcserver := IpcServerChannel.Create('TEST');
  ChannelServices.RegisterChannel(ipcserver);
  System.Runtime.Remoting.RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteObject), 'RemoteObject.rem',
                System.Runtime.Remoting.WellKnownObjectMode.SingleCall);

  Threadliste := TSTringlist.create;
Aufruf aus der Anwendung die die Infos abruft.
Delphi-Quellcode:
  channel := IpcChannel.Create;

  System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(channel);

  remoteType := System.Runtime.Remoting.WellKnownClientTypeEntry.create(typeof(RemoteObject),'ipc://TEST/RemoteObject.rem');
  System.Runtime.Remoting.RemotingConfiguration.RegisterWellKnownClientType(remoteType);
Was mich zusätzlich wundert. Starte ich die Anwendung normal dann zieht sie sich mehr als 25 MB wenn ich die dann über dien Dienst starte nut 8 MB das kapier ich grade überhaupt nicht.


Nachtrag:

Problem soweit gelöst der Dienstbenutzer muss dem selben entsprechen wie der Angemeldete Benutzer der die Anwedung startet.


Meine Frage bleibt aber dennoch in sofern offen, warum das Benutzersesnitiv gesendet wird ich dachte es gibt Möglichkeit damit systemweit zu senden und die Anwendung die es will ( egal welcher Benutzer ) die Infos auch erhält.

Geändert von Digielm (25. Nov 2010 um 16:20 Uhr)
  Mit Zitat antworten Zitat