Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prism Anwendung aus Dienst gestartet kann aber nicht mit IPCChannel kommunizieren (https://www.delphipraxis.net/156250-anwendung-aus-dienst-gestartet-kann-aber-nicht-mit-ipcchannel-kommunizieren.html)

Digielm 25. Nov 2010 08:06

Delphi-Version: 2007

Anwendung aus Dienst gestartet kann aber nicht mit IPCChannel kommunizieren
 
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.

Digielm 25. Nov 2010 15:20

AW: Anwendung aus Dienst gestartet kann aber nicht mit IPCChannel kommunizieren
 
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.

Dezipaitor 27. Nov 2010 14:33

AW: Anwendung aus Dienst gestartet kann aber nicht mit IPCChannel kommunizieren
 
Scheint mir ein rechtliches Problem beim IPC zu sein. Der Standard-Sicherheitsdeskriptor des IPC lässt nicht zu, dass ein Benutzer verbinden kann. Durch starten des Dienstes mit dem entsprechenden Benutzeraccount löst ja das Problem für den Benutzer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz