Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Webservice TADOConnection "fehlerhaftes Modul" (https://www.delphipraxis.net/141925-webservice-tadoconnection-fehlerhaftes-modul.html)

Boppe 19. Okt 2009 09:42


Webservice TADOConnection "fehlerhaftes Modul"
 
Hallo Zusammen!
Ich versuche im Moment einem Webservice, welcher mit Delphi erstellt wurde, über ADO auf einen SQL Server zu verbinden. Webservice läuft auch soweit einwandfrei. Wenn ich jedoch versuche eine Connection zu erstellen, meldet mein Client

"Das angegebene Modul wurde nicht gefunden"

und im Windows Server Log erscheint

"Fehlerhafte Anwendung Orders.exe, Version 1.0.0.1, Zeitstempel 0x4ad8432b, fehlerhaftes Modul kernel32.dll, Version 6.0.6002.18005, Zeitstempel 0x49e037dd.....".

Units sind eingebunden und der Aufruf ist stinknormal wie immer
Delphi-Quellcode:
procedure DoDatabaseConnection();
begin
  CoOrders := TADOConnection.Create(nil);
  CoOrders.ConnectionString := ..........
  .
  .
Jemand ne Ahnung woran das liegen könnte?

Grüße
Boppe

System: Windows 2008 Server Standard, Delphi 2007 prof.

FrankJ28 19. Okt 2009 10:16

Re: Webservice TADOConnection "fehlerhaftes Modul"
 
Hallo,
ist der IUSR in deiner Datenbank eingetragen und hat entsprechende Rechte?
Ciao
Frank

Boppe 19. Okt 2009 10:31

Re: Webservice TADOConnection "fehlerhaftes Modul"
 
Hallo Frank,
soweit komme ich schon gar nicht. Bereits beim Erzeugen der TADOConnection bekomme ich diese Fehlermeldung.

Gruß
Boppe

FrankJ28 19. Okt 2009 10:35

Re: Webservice TADOConnection "fehlerhaftes Modul"
 
Hallo Boppe,
falscher Ansatz, starte das Management Studio und schau dort die Einstellungen nach. Als IUSR, mit dem du dich als Web-Dienst anmeldest, darft Du zunächst nichts. Ich kämpfte mich da auch schon durch :? .
Ciao
Frank

Bernhard Geyer 19. Okt 2009 10:52

Re: Webservice TADOConnection "fehlerhaftes Modul"
 
Verwenden WebServices nicht Threads?

Falls ja Probier mal ein CoInitialize(nil); vor dem erzeugen.

Boppe 19. Okt 2009 13:11

Re: Webservice TADOConnection "fehlerhaftes Modul"
 
Hallo Bernhard,
ja an CoInitialize hatte ich auch schon gedacht. Brachte aber leider auch nicht den gewünschten Erfolg.

@Frank - die Exception tritt beim TAdoConnection.Create() auf. Also bevor ich im in irgendeiner Art und Weise einen Treiber Bsp. MSSQL zuweise. Es kann also kaum an den Benutzerrechten des MSSQL Servers liegen.

Kann es evtl an irgendwelchen Verzeichnisrechten liegen?

Webserver ist Apache 2 unter Windows 2008.
Wie gesagt, der Service läuft und funktioniert auch.

FrankJ28 19. Okt 2009 16:08

Re: Webservice TADOConnection "fehlerhaftes Modul"
 
Hallo Boppe,
meine Erfahrungen stammen aus Zusammenspiel IIS7 und SQL-Server 2008. Da wird auch schon bei der Connection auf eine Datenbank (Default, oder eben eine spezielle DB) zugegriffen. Ergo, Fehler bei Connection.Open. Wie sieht denn dein ConnectionString aus? Wie ist die Konfiguration deiner Default-DB (User)? Was sagt dir dein SQL-Server-Protokoll direkt nach deiner Connection?
Ciao
Frank

ACR0815 13. Nov 2009 13:28

Re: Webservice TADOConnection "fehlerhaftes Modul"
 
Hallo Boppe,

ich habe das gleiche Problem. Allerdings bin ich schon einen Schritt weiter.

1. Es liegt definitiv am Einsatz der ADO Komponente und nicht am fehlenden Connection-String.
2. Mein Webservice mit Zugriff auf einen SQL-Server via ADO funktioniert einwandfrei unter Win2000 und XP aber n i c h t unter Vista


Du setzt ja Win 2008 Server ein - versuche es doch mal in einer VM unter XP und du wirst sehen, dass es nicht am Connection-String liegt. Ich habe einen Test-Webservice aufgesetzt, der außer einem Echo-string nichts anderes macht. Er funktioniert einwandfrei (auch unter Vista). Wenn ich aber irgendeine ADO-Komponente einfüge (sei es dynamisch oder statisch im Data-Module) und mit und ohne gültigen Connection String funktioniert der Webservice unter XP und Win 2000 aber nicht unter Vista. Bei der Variante ohne Connection String spielt es keine Rolle ob überhaupt der MSSQL-Server installiert ist, die Erzeugung der Komponente liefert den Fehler.

Möglicherweise fehlt unter Vista oder 2008 irgendeine DLL um die ADO-Komponenten einsetzen zu können.

Bist du schon weiter gekommen ?

Bernhard Geyer 13. Nov 2009 14:03

Re: Webservice TADOConnection "fehlerhaftes Modul"
 
Zitat:

Zitat von ACR0815
Möglicherweise fehlt unter Vista oder 2008 irgendeine DLL um die ADO-Komponenten einsetzen zu können.

Mit sicherheit nicht. Hab unter Vista und mit NT-Diensten und ADO schon gearbeitet - jedoch ohne die Wrapper von Delphi zu verwenden. Evtl. wäre ein Testapp mit den (Trial-)Kompos von DevArt hilfreich zum zu sehen ob diese gehen würden.

ACR0815 13. Nov 2009 14:22

Re: Webservice TADOConnection "fehlerhaftes Modul"
 
@Bernhard Geyer
Natürlich ist es möglich unter Vista mit den ADO Komponenten zu arbeiten. Die Aussage bezog sich lediglich auf den Einsatz von ADO Komponenten in Webservice Applikationen.
Die devart Komponente (dbexpress) kann einwandfrei instantiiert werden, es geht mir aber ja gerade um die TADOConnection und eine Diskussion warum ADO und nicht dbexpress möchte ich hier nicht vom Zaun brechen. Ich würde einfach nur gerne wissen, warum die ADO Komponenten nicht bei Webservices funktionieren bzw. welches Modul denn fehlt.

Die genaue Fehlermeldung sieht bei mir so aus:

Interner Server-Fehlerr 500
Exception: EOleSysError
Meldung: Das angegebene Modul wurde nicht gefunden

Übrigens macht es keinen Unterschied ob ich den IIS oder Apache als Webserver einsetze.

Vielen Dank für deine Antwort


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 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