Autor Beitrag
Muck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 98
Erhaltene Danke: 8

Win 8, Win 7, Vista, Win XP
Delphi XE3, Delphi 2009, Delphi 2007, Delphi 5
BeitragVerfasst: Mo 26.01.09 23:19 
Hallo,

ich schreibe eine TService Anwendung, die Verbindung zu einem MSSQL 2005 Server aufnimmt.
Compiliere ich als normal Application laeuft alles fehlerlos.

Starte ich die Anwendung als Service erhalte ich [DBNETLIB][ConnectionOpen (SECDoClientHandshake()).]SSL Security Error

der Fehler entsteht beim Verbindungsaufbau der TAdoConnection:
Folgende Versuche waren erfolglos:
-Service von Local System auf Domain Login gestellt
-SQL Server und Client, sicher gestellt, dass SSL oder Enforce Encryption abgestellt ist
-statt ado native client genutzt,
-statt Trusted Connection im Connection String auf SQL Authentification gestellt (cliconfg etc)
-named pipes im SQL Server abgeschaltet
-Den Service auf einer anderen Maschine installiert
-Certificate = 0 in registry eingetragen im SuperSocket Bereich
-statt CoInitialze CoInitializeEx(COINIT_AppartmentThreaded) aufgerufen
-mit MMC.EXE die Certificates verglichen fuer den installierten Serice, ein Local Account und ein Domain Account, alle Certificates waren gleich.

Bin mit meinem Latein am Ende, vielleicht hatte ja jemand mal gleiches Problem und weiss Rat.
Ich habe den Service auf 4 verschiedenen PCs installiert.
Alle haben Windows Server 2003 installiert mit SQL 2005 Express.

Nur einer gibt diese Fehlermeldung aus, aber nur wenn das Programm als Service gestartet wird.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TISSystemsPhoneStream.ServiceStart(Sender: TService;  var Started: Boolean);
var x:TTimeZoneInformation;I:Integer;
begin
I:=CoInitialize(nil);
GetTimeZoneInformation(x);
Bias:=x.Bias*60;
CoStr:=AdoCon.ConnectionString;
try AdoCon.Connected:=true except on e:exception do begin // --------------- HIER ENTSTEHT DER SSL ERROR
  LogMessage(e.Message,EVENTLOG_ERROR_TYPE,0,4);
end;
end;
Timer2.Enabled:=true;
Started:=true;
end;


Vielen Dank

Markus
rhartbrich
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 07.04.09 15:22 
Hallo Markus,

hast Du inzwischen eine Lösung des Problems beim schreiben in die Datenbank aus einer Service-Anwendung (Dienst) gefunden?

Ich habe ein ähnliches Problem und wäre an Deiner möglicherweise gefundenen Lösung interessiert.

Danke Dir,
Rolf
Muck Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 98
Erhaltene Danke: 8

Win 8, Win 7, Vista, Win XP
Delphi XE3, Delphi 2009, Delphi 2007, Delphi 5
BeitragVerfasst: Di 07.04.09 19:16 
Hallo,

ich habe das Problem auf diesem Server nie geloest. Mittlerweile ist meine Software auf dem Markt. 50 weitere Installationen liefen alle ohne Probleme.

Ich hatte seinerzeit 2 Loesungswege im Web gefunden:
a) mit mmc.exe alle certificate vom sql server loeschen, dann den server neu installieren und die certificate wieder installieren.
Habe ich nicht in Betracht gezogen, habe 98 Certificates auf dem SQL Server.
b) Microsoft antwortete mir, dass ich .NET updaten sollte.

Ich habe einfach meinen Dienst zu einem anderen SQL Server verbinden lassen (Kunde hat gluecklicherweise mehrere zur Auswahl).

Welches Problem hast Du beim Versuch einen Dienst auf MS SQL zugreifen zu lassen?

Markus
rhartbrich
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 08.04.09 10:31 
Danke für die schnelle Antwort,

das Problem saß vor dem Computer.

Ich konnte mich aus dem Service nicht mit dem SQL-Server verbinden. Nachdem ich den Fehler mit try ..except und mit e:exeption die Fehlermeldung in ein Logfile geschrieben habe konnte ich die Fehlerursache bestimmen und den Fehler beheben:

ich hatte schlicht und einfach vergessen COM zu initialisieren.
Also den Aufruf von CoInitializeEX eingefügt und schon hat es funktioniert.

Dennoch danke ich für die schnelle Reaktion.

Gruß Rolf