Installazione di un servizio Web Delphi 7 ISAPI
-
28-09-2020 - |
Domanda
Ho sviluppato un servizio Web ISAPI in Delphi 7 e ho bisogno di installarlo in un server in modo che possa essere consumato da un'applicazione C #.
Ho copiato la DLL della ISAPI in una cartella e ha creato una directory virtuale nell'IIS del server.
Quando chiamo il servizio Web dal browser ( http://localhost/webservice/ws.dll ) Il sito Web per il servizio Web che visualizza Delphi crea per impostazione predefinita. Se creo il riferimento Web nell'applicazione C #, il riferimento viene caricato normalmente usando l'URL che ho fornito sopra.
Soluzione
Il problema era il seguente.
Il mio servizio Web viene utilizzato per consumare il servizio Web Delphi di un altro ragazzo. Ho dovuto sviluppare questo servizio web poiché c'è un'applicazione .NET che dovrebbe consumare il servizio Web Delphi dell'altro ragazzo, ma il ragazzo che ha sviluppato ha utilizzato complessi tipi di dati che .NET non supporta. Quindi ho dovuto sviluppare il mio servizio web per fungere da traduttore. Ho usato .NET i tipi di dati supportati in quella e l'applicazione .NET consuma il mio servizio Web Delphi solo per consumare il servizio Web dell'altro ragazzo. È un po 'disordinato ma non ero in grado di persuadere l'altro ragazzo a utilizzare i tipi di dati standard. Il mio servizio Web ha una routine che prende l'URL di sapone dal servizio Web dell'altro ragazzo da un file INI. Non ricordavo che ho sviluppato quella routine per cercare quel file INI in un percorso specifico.
La routine sembra questa:
ifParams:=TIniFile.Create('C:\BancorTranslator\BancorTranslator.ini');
HostAnula:= ifParams.ReadString('GLOBAL','HOSTANULA','');
HostDepos:= ifParams.ReadString('GLOBAL','HOSTDEPOS','');
HostTrans:= ifParams.ReadString('GLOBAL','HOSTTRANS','');
HostConsu:= ifParams.ReadString('GLOBAL','HOSTCONSU','');
.
Avevo il file INI in una posizione diversa, quindi quando il mio servizio Web ha provato a consumare il servizio Web dell'altro ragazzo, il SOAP URL configurato nel mio servizio Web è stato vuoto. Ho cambiato la routine per cercare il file INI nella stessa cartella in cui viene ospitato il mio servizio Web e funziona bene ora. Non è necessario copiare alcun file nella cartella System32. Era il mio casino.
Grazie a tutti per il tuo aiuto;)