AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird über NTService (Dienst) zugreifen funkt nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird über NTService (Dienst) zugreifen funkt nicht

Ein Thema von Kostas · begonnen am 5. Nov 2013 · letzter Beitrag vom 8. Nov 2013
Antwort Antwort
Seite 1 von 3  1 23      
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.062 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Firebird über NTService (Dienst) zugreifen funkt nicht

  Alt 5. Nov 2013, 16:04
Datenbank: Firebird • Version: 1.5 • Zugriff über: IBO
Hallo Zusammen,

ich hab eine Windows Forms Anwendung geschrieben die über IBO auf eine entfernte Firebird Datenbank zugreift.
Alles funktioniert einwandfrei. Nun erzeuge ich ein parallel Projekt mit exakt der gleichen Funktionalität jedoch
als Dienst. Beim versuch die TIB_Connection zu öffnen bekomme ich eine Fehlermeldung:
"Zugriffsverletzung bei Adresse 10013621 in Modul 'fbclient.dll'. Schreiben von Adresse 00000054" ich habe auch die richtige fbclient.dll in das Programmverzeichnis kopiert, doch ohne Erfolg.
Ist da etwas spezielles zu tun wenn es sich um ein Service handelt? Alles andere funktioniert einwandfrei.

Kann es sein dass ein Dienst nicht auf eine Firebird Installation auf einem anderen Rechner zugreifen kann?

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Firebird über NTService (Dienst) zugreifen funkt nicht

  Alt 5. Nov 2013, 16:08
Du musst dem Konto unter dem der Dienst läuft Netzwerkzugriff einräumen oder den dafür definierten Benutzer NT AUTHORITY\NetworkService verwenden.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.062 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Firebird über NTService (Dienst) zugreifen funkt nicht

  Alt 5. Nov 2013, 16:18
Hallo Union,

danke für die Blitz Antwort.
Ich starte den Dienst über mein eingelogten user (Admin Rechte)
Was genau müsste ich bitte machen? Etwa dem Dienst unter Anmeldung die Gruppe "NETZWERKDIENST"
zuordnen? das habe ich soeben versucht. Der Dienst int nun angemeldet als Netzwerkdienst, funktioniert jedoch
auch nicht. Die gleiche Fehlermeldung.

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Firebird über NTService (Dienst) zugreifen funkt nicht

  Alt 5. Nov 2013, 16:23
Funktioniert es denn mit dem Service als Standalone exe? Kannst Du auf den Rechner und die DB auf anderem Wege zugreifen?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.062 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Firebird über NTService (Dienst) zugreifen funkt nicht

  Alt 5. Nov 2013, 16:35
Ich habe die Applikation zuerst als normale Windows VCL-Anwendung erstellt, wobei das main Form leer ist.
Alle Elemente befinden sich auf ein Datamodul. Die Anwendung funktioniert einwandfrei.
Danach habe ich ein parallel Projekt angelegt und alles aus dem Datamodul in ein NTServiceModul gepackt.
Ich verwende übrigens die Komponenten SvCom( bin noch im Test damit) für die Umsetzung als Dienst.
Mir ist nicht bekannt ob es möglich ist den Dienst als normale Anwendung zu starten.
Jetzt wird es vermutlich schwierig oder?

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Firebird über NTService (Dienst) zugreifen funkt nicht

  Alt 5. Nov 2013, 16:57
Du kannst das in der dpr programmieren:
Delphi-Quellcode:
begin
  if ParamStr(1) = '/EXEthen
  begin
    // Das musst Du hinzufügen mit einem entsprechenden Formular aus dem Du die Aktionen aufrufst wie im Service (normalerweise in ServiceExecute. Am besten ServiceExecute besteht nur aus einer Zeile...)
    Forms.Application.Initialize;
    Forms.Application.CreateForm(TfrmDeinFormular, frmDeinFormular);
    Forms.Application.Run;
  end
  else
  begin
    // Das hier ist der automatisch erzeugte Block einer Dienstanwendung
    SvcMgr.Application.Initialize;
    SvcMgr.Application.CreateForm(TSrvDeinService, SrvDeinService);
    SvcMgr.Application.Run;
  end;
end.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.062 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Firebird über NTService (Dienst) zugreifen funkt nicht

  Alt 5. Nov 2013, 17:04
ah, jetzt verstehe ich das. Die SvCom Komponenten haben das per Default drin.
Ich werde das mal gleich morgen ausprobieren. Ich habe jetzt leider noch einen Termin.
Herzlichen Dank und ich melde mich morgen damit.

Dir noch eine schöne Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Firebird über NTService (Dienst) zugreifen funkt nicht

  Alt 5. Nov 2013, 17:10
Ja, dann musst Du das entsprechend austauschen:
Delphi-Quellcode:
begin
  if SvComfindCommand('EXE') then
  begin
    Forms.Application.Initialize;
    Forms.Application.CreateForm(TfrmDeinFormular, frmDeinFormular);
    Forms.Application.Run;
  end
  else
  begin
    SvCom_NTService.Application.Initialize;
    SvCom_NTService.Application.CreateForm(TSrvDeinService, SrvDeinService);
    SvCom_NTService.Application.Run;
  end;
end.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#9

AW: Firebird über NTService (Dienst) zugreifen funkt nicht

  Alt 5. Nov 2013, 17:22
Kostas,

zusätzlich zu den Delphi-Empfehlungen ist es auch ratsam einen TCP/IP Connect-String zur Firebird Datenbank in einer Service Anwendung zu verwenden.
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.062 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Firebird über NTService (Dienst) zugreifen funkt nicht

  Alt 5. Nov 2013, 22:36
Hallo Zusammen,
hallo Thomas, schon lange nicht mehr voneinander gehört. Ich hoffe es geht dir soweit gut.

Ich habe den Dienst nun als Standalone Exe laufen lassen und es funkt alles einwandfrei.
Auch ein Neustart hat nicht gebraucht. Den User "NT AUTHORITY" habe ich auf mein Win7 Ultimate 64Bit
nicht. Dafür konnte ich jedoch den Dienst-Anmeldung-DiesesKonto= "NETZWERKDIENST" mit dem Admin Passwort angeben.

Für IBO habe ich der TIB_Connection wie immer:
cn1.Server := Computername/3050
cn1.Protocol := 'cpTCP_IP'
cn1.Path := 'F:\Real path zur Datenbank\Datenbank.FDB'

Damit funktioniert der Dienst als Standalone Exe einwandfrei.
Nur der Dienst macht Zicken mit der Fehlermeldung Zugriffsverletzung bei Adresse 10013621 in Modul 'fbclient.dll'. Schreiben von Adresse 00000054

Wie gesagt, die richtige fbclient.dll habe ich auch im Exe Verzeichnis kopiert.

Übrigens, die Entwicklungsmaschine ist vistualisiert mit VMWare Workstation 9.0.2
Delphi XE2 und der Dienst laufen auf der vistualisierten Maschine Win7 Ultimate 64Bit.
Firebird läuft nur auf der Host-Maschine in zwei Instanzen FB1.5 Port 3050 und FB2.5 Port 3025.
Das LW F: ist eine Netzlaufwerk auf der Host-Maschine, ebenfalls Win7 Ultimate 64Bit.
LW F: ist auch freigegeben für "Jeder" und zusätzlich jetzt auch für "NETZWERKDIENST".
Hat leider auch nicht funktioniert.

Hat jemand noch eine Idee?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 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