2011-01-14 17 views
2

Wenn ich versuche, die Borland SocketServer-Anwendung für Delphi 2009 zu beenden, wird die obige Meldung angezeigt.Delphi DataSnap SocketServer "Fehler beim Erstellen des Schlüssels 211"

Das Anwendungsfenster bleibt geöffnet und ich kann die Anwendung nur im Task-Manager beenden.

Betriebssystem Windows 2000 Professional SP4

Der gleiche Fehler auch mit der Delphi-2007-Version von scktsrvr

+0

Beachten Sie, dass der Socket-Server keine 64-Bit-Daten verarbeiten kann. –

+0

@ldsandon getestet auf Windows 7 64 Bit und es scheint zu funktionieren - wo zeigt sich die 64-Bit-Beschränkung? – mjn

+1

Wenn Sie versuchen, Int64 Daten hin und her zu senden ... siehe QC# 69741 und # 69924 –

Antwort

4

scktsrvr seine Einstellungen unter HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Socket Server Registrierungsschlüssel zu speichern versucht auftritt, die wahrscheinlich unter einem eingeschränkten Benutzerkonto fehlschlägt. Versuchen Sie es als Administrator oder als Dienst auszuführen.

Edit: Sie können es auch ändern, um zum Beispiel HKEY_CURRENT_USER zu verwenden. Es kommt mit Quellcode.

+0

ein Kandidat für einen QC-Eintrag vielleicht - oder vielleicht ist es in XE geändert, da ich keinen Grund sehe, diesen Registrierungsschlüssel Zweig und die Notwendigkeit für Administrator-Privilegien – mjn

+0

Die Leute scheinen zu vergessen, dass ACLs auch auf Registrierungsschlüssel gesetzt werden können. Sie benötigen selbst in HKLM keine Administratorrechte, solange andere Berechtigungen dies zulassen. Systemweite Einstellungen sollten in HKLM gespeichert werden, aber die entsprechenden Berechtigungen sollten ebenfalls festgelegt werden. Das Privileg "Administrator" zu geben ist nur eine faule (und gefährliche) Art, es auszuführen. –

+0

Laufen als Admin für mich gelöst, danke! – delphirules

0

Führen Sie den Socketserver als Dienst aus, und fügen Sie dem Registrierungsschlüssel, den der Dienstbenutzer festlegen muss, die entsprechende Berechtigung hinzu. Denken Sie daran, dass der Benutzer, den Sie zum Ausführen des SocketServers verwenden, wichtig ist. Der Server verhält sich wie ein Proxy und ruft wiederum den DCOM-Server auf, der den Remote-Server implementiert. Sofern nicht geändert, wird der Benutzer des Verbindungsprozesses für die DCOM-Sicherheit verwendet. Dabei müssen Sie sicherstellen, dass der richtige Benutzer verwendet wird, oder Sie können zu großen Sicherheitsrisiken führen.