views:

732

answers:

3

I am trying to call a web service from a BizTalk (2006) orchestration.

Having got the hang of the basics, I have been following this tutorial (page 74 onwards) in which i have a web reference to an external web service (I am using this web service instead of the one in the tutorial), I have my web message in a Send component, and have set up the request / response ports for the web service call.

I'm fairly sure that eveything is set up correctly, but my orchestration fails to call the web service with the following error:

The adapter failed to transmit the message going to send port "My_Order_Processor.Orchestration-CurrencyConvertPort-36c122f41c5596ae" with URL "http://www.webservicex/net/CurrencyConvertor.asmx.

WebException: Unable to connect to the remote server.

SocketException: An existing connection was forcibly closed by the remote host 209.162.186.60:80

The IP 209.162.186.60 is the address for the web service I am trying to connect to. I am trying to narrow down the reasons for the error, e.g.:

  • Firewall issues
  • Proxy server issues (I don't know how to configure BizTalk to use a proxy server)
  • Something else

The BizTalk server can ping the web service, I can access the internet (through IE), I can add the WebReference to the project successfully (meaning at least the orchestration designer can access the web service okay). I have also tried a different web service, with the same result.

Any ideas on finding out why this is happening or how to find out more info? (I'm new to BizTalk)

A: 

I've seen this veru vague error before for many different reasons. Two suggestions.

  1. Download something like NetMon and watch what is going on on the wire.
  2. Turn off chunked encoding. For some reason, many web services don't handle this well.

Let us know what you find out.

ChrisLoris
I will try the above, thanks for the suggestions!
James Allen
A: 

Could this not be an authentication issue? Check that you can connect to the webservice using the Bts credentials.

ryancrawcour
Don't think so - it is a public web service which does not appear to need credentials (there is a link to it in my post).
James Allen
A: 

This turned out to be a proxy issue.

By navigating to Biz Talk Group -> Platform Settings -> Adapters -> SOAP, I was able to configure the BizTalk server host's SOAP adapter (which is what the web service call uses to make the call) to use our company proxy server correctly. Double click the 'send' SOAP adapter, go to Properties under adapter name.

James Allen