I want to send requests to a .NET webservice through Internet, but the problem is the SOAP address in the WSDL has a private IP address:
<soap:address location="http://10.10.1.1/xxxxx/yyyyyyyyyy.asmx" />
And when I try to send some request, with PHP and NuSOAP for example, I get an error with this location:
HTTP Error: Couldn't open socket connection to server
http://10.10.1.1/xxxxx/yyyyyyyyyy.asmx
, Error (110): Connection timed out
Is this normal? In the other side it's using BizTalk and I think they don't know how to fix it.
I'd prefer a Perl solution like SOAP::Lite
or SOAP::XML::Client::DotNet
, but I thought a solution like NuSOAP would be easier than Perl solution.
As doterob has suggested, BizTalk will need to expose the web-service to the internet for you to be able to access the WSDL and consume it. In doing so, they will expose an internet facing address (e.g. http://web-service.biztalk.com/service.asmx?wsdl)
Once you have a copy of the WSDL, create a message that can be consumed by the web-service and configure your application to use the internet facing address for the web-service. The local network address (10.10.1.1) included in the WSDL assumes that you will be consuming the service from the LAN, not an external network (i.e. the interweb).
I won't go into the security implications sticking a BizTalk web-service live on the internet poses here, but that certainly isn't recommended best practice! I would however recommend that the web-service is secured with Certificate based Authentication at a very minimum.