![]() |
Probleme mit DCOM
Ich habe einen DCOM Server entwickelt, der auch super läuft...
Ein einziges Problem gibt es doch und es ist nicht unbedeutend. Auf die Serveranwendung sollen relativ viele Clients zugreifen. Das Problem ist, dass die Serveranwendung bei jedem Client in der Registry eingetragen werden muss. Die Benutzer auf den Clients, welche diese Anwendung nutzen sollen, haben aber lediglich eingeschränkte Rechte. Die Serveranwendung wird in die Registry eingetragen, sobald es noch nicht der Fall ist, damit eine Instanz der Serveranwendung auf dem Serverrechner erzeugt wird. Die Benutzer haben aber kein Recht einen Eintrag in der Registry vorzunehmen und das ganze scheitert an dieser "Kleinigkeit". Hat vielleicht irgendein Kollege mit diesem Problem bereits gekämpft und evtl. eine Lösung gefunden?? :wall: :roll: Grüße |
Re: Probleme mit DCOM
Zitat:
"Nachfolgetechniken" wie SOAP haben diesen Nachteil nicht mehr. |
Re: Probleme mit DCOM
DCOM Server können über die Verwaltung -> Komponenten Dienste (anstatt RegSvr32) installiert werden. Dabei kann man angeben
Zitat:
...:cat:... |
Re: Probleme mit DCOM
Zitat:
Zitat:
Auch auf dem Server ist (je nach Realisierungsweg) kein Schreibzugriff auf die Registry (HKEY_LOCAL_MACHINE) nötig. |
Re: Probleme mit DCOM
Vergesst was ich getippt habe, ich hatte es falsch verstanden. :oops: Ich dachte, der Server soll (warum auch immer :roll:) jeden zugreifenden Client in der Registry speichern... Unter den mir jetzt klar gewordenen Gesichtspunkten ist mein Vorschlag dumpfsinnig :mrgreen:
Jetzt kann man aber dem COM-Server mithilfe des MS SOAP ToolKit in einen SOAP-Server umwandeln und dann die Clients via Seifenanbindung arbeiten lassen - damit ist immerhin der Server der alte. Allerdings müssten die Clients angepasst werden :wall: ...:cat:... |
Re: Probleme mit DCOM
Zitat:
|
Re: Probleme mit DCOM
Zitat:
Bei SOAP ist dies prinzipbedingt nicht nötig (Schreibrechte auf HKEY_LOCAL_MACHINE). Evtl. hat das MS SOAP-Toolkit hier einschränkungen. Aber damit hatte ich noch nicht zu tun. |
Re: Probleme mit DCOM
Da ich jetzt ziemlich viel Zeit damit verbracht habe, möchte ich nicht das Projekt über Board werfen.
Ich habe jetzt von der Funktion CreateProcessWithLogonW erfahren mit der ich einen Prozess unter einem anderem Benutzer starten kann. Damit könnte ich mit den AdminRechten den Prozess zur Registrierung der Serveranwendung auf dem Client starten. Ich bekomme die Funktion aber nicht zum laufen dazu verwende ich den folgenden Quellcode
Delphi-Quellcode:
Ich bekomme ständig als Antwort den Fehler 87, was übersetzt "falscher Parameter" bedeutet ..
procedure TForm1.Button1Click(Sender: TObject);
var si: STARTUPINFOW; pif: PROCESS_INFORMATION; res: Bool; s: string; begin si.cb := SizeOf(startupinfow); si.dwFlags := STARTF_USESHOWWINDOW; si.wShowWindow := SW_SHOWDEFAULT; si.lpReserved := nil; si.lpDesktop := nil; si.lpTitle := 'Konsole'; res := CreateProcessWithLogonW(username, domain, userpass, LOGON_WITH_PROFILE, 'e:\projekte\runas\runas.exe', nil , CREATE_DEFAULT_ERROR_MODE, nil, nil, si, pif); if booltostr(res) = '0' then begin //this code can be 'translated' with 'net helpmsg ' on command-prompt str(GetLastError, s); ShowMessage('CreateProcessWithLogonResult: ' + booltostr(res) + #10 + 'GetLastError: ' + s); end; end; Was mache ich falsch ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz