Frage

Ich habe einen ISAPI-Webservice in Delphi 7 entwickelt und muss es in einem Server installieren, damit er von einer C # -Anwendung verbraucht werden kann.

Ich habe die DLL des ISAPI in einem Ordner kopiert und in der IIS des Servers ein virtuelles Verzeichnis erstellt.

Wenn ich den Web-Service vom Browser anrufe ( http://localhost/webservice/ws.dll ) Die Website für den Webdienst, der Delphi für den Standard erstellt, wird angezeigt. Wenn ich die Webreferenz in der C # -Anwendung erstellte, wird die Referenz normalerweise unter Verwendung der oben angegebenen URL geladen.

Das Problem ist, dass, wenn ich die C # -Anwendung Schritt für Schritt debugg, eine Funktion innerhalb des Delphi-Webdienstes nennt, aber es tut nichts. Der Webdienst gibt nichts zurück.

Ich erinnere mich daran, dass ich ein ähnliches Problem hatte, und der Weg, um es zu beheben, war, einige Delphi-DLLs in den Ordner System32 des Servers zu kopieren, in dem ich den Webdienst installierte, aber ich erinnere mich nicht, welche Dateien ich kopieren muss und wenn das tatsächlich das Problem löst.

Der Webservice ist keine Ausnahme in die .NET-Anwendung. Es macht einfach nichts. Die Funktionen kehren nichts zurück.

Alle Ideen?

War es hilfreich?

Lösung

Das Problem war folgender.

Mein Web-Service wird verwendet, um den Delphi-Webservice eines anderen Guy zu konsumieren. Ich musste diesen Web-Service entwickeln, da es eine .NET-Anwendung gibt, die den Delphi-Webservice des anderen Guy-Delphi-Webservices nicht dazu bringen sollte, der Kerl, der er entwickelt hat, komplexe Datentypen verwendet, wobei .NET nicht unterstützt wird. Ich musste also meinen Webservice entwickeln, um als Übersetzer zu fungieren. Ich habe .NET unterstützte Datentypen in dieser und der .NET-Anwendung verbraucht meinen Delphi-Webservice, nur um den Web-Service des anderen Guy zu konsumieren. Es ist irgendwie unordentlich, aber ich konnte den anderen Kerl nicht überzeugen, Standard-Datentypen zu verwenden. Mein Web-Service verfügt über eine Routine, die die SOAP-URLs von dem Web-Service des anderen Guy in einer INI-Datei annimmt. Ich erinnere mich nicht daran, dass ich entwickelt habe, dass Routine nach dieser Ini-Datei in einem bestimmten Pfad suchen kann.

Die Routine sieht so aus:

generasacodicetagpre.

Ich hatte die INI-Datei an einem anderen Ort, sodass mein Webdienst versuchte, den Webservice des anderen Guy zu konsumieren, die in meinem Web-Service konfigurierte SOAP-URL war leer. Ich habe die Routine geändert, um nach der INI-Datei in demselben Ordner zu suchen, in dem mein Webdienst gehostet wird, und es funktioniert jetzt in Ordnung. Sie müssen keine Dateien in den Ordner System32 kopieren. Es war mein Durcheinander.

vielen Dank für Ihre Hilfe;)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top