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
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.112 Beiträge
 
Delphi 12 Athens
 
#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.492 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.112 Beiträge
 
Delphi 12 Athens
 
#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.492 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.112 Beiträge
 
Delphi 12 Athens
 
#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.492 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
Antwort Antwort


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 06:34 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