Jump to content

Calling SOAP webservices from 64-bit DLL


Tim

Recommended Posts

Hi,

 

My project needs to call SOAP-based webservices. Unfortunately it seems that there may be a problem performing such webservice calls from 64-bit DLLs under IIS, which is how my project will be deployed.

 

See for example the following public webservice:

 

http://www.webservicex.net/geoipservice.asmx?WSDL

 

After importing the WSDL into a test project, I tried using the following code to make a webservice call:

procedure TMainForm.UniButton1Click(Sender: TObject);
var
  G : GeoIP2;
begin
  try
    G := GetGeoIPServiceSoap().GetGeoIP(UniEdit1.Text);
  except
    on e : Exception do begin
      UniMemo1.Lines.Add('EXCEPTION ' + e.ClassName() + ' ' + e.Message);
      exit;
    end;
  end;


  if G = nil then begin
    UniMemo1.Lines.Add('nil');
  end
  else begin
    UniMemo1.Lines.Add('country=' + G.CountryName);
    G.Free();
  end;
end;
When I run the project as a standalone EXE (32 or 64 bit) or as a 32-bit ISAPI DLL, clicking the button results in a country name being written into the memo as expected. When I run the project as a 64-bit ISAPI DLL, clicking the button results in the following error message being written into the memo (Zugriffsverletzung = access violation):
 
EXCEPTION EAccessViolation Zugriffsverletzung bei Adresse 000000F10049BE60 in Modul 'w3wp.exe'. Ausführung von Adresse 000000F10049BE60
 

Has anybody else encountered this problem or has an idea how to solve it?

 

Setup: UniGui v0.98.10.1132, Delphi XE6, Win8.1, IIS 8.5

 

Many thanks

Tim

 

 

Link to comment
Share on other sites

Sorry, it seems that this isn't really a UniGui issue. I just created a non-UniGui 64-bit ISAPI DLL test project in Delphi XE6, and i get exactly the same behaviour! I would still be interested in hearing from anyone who knows a solution :)

Link to comment
Share on other sites

  • 1 year later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...