I'm testing a very simple web services called Add (take 2 integers and return
the result). The service program is done in VS.NET and work well using HTTP
POST. I wrote a simple (Classic) ASP SOAP Client on the same server (let's
call it server A) where the web service is hosted, and it can consume the
service just fine.
The asp client looks like this:
<%
strPost="http://localhost/WebService3/Service1.asmx"
strPostData="<?xml version=""1.0"" encoding=""utf-8""?>" & _
"<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" " & _
" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" " & _
" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & _
" <soap:Body>" & _
" <Add xmlns=""http://tempuri.org/"">" & _
" <num1>123222324</num1>" & _
" <num2>923323222</num2>" & _
" </Add>" & _
" </soap:Body>" & _
"</soap:Envelope>"
set objHTTP = CreateObject ("Msxml2.XMLHTTP.4.0")
objHTTP.open "POST" , strPost, false
objHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objHTTP.setRequestHeader "SOAPAction", "http://tempuri.org/Add"
objHTTP.send strPostData
Response.write objHttp.responseText
%>
But when I move the ASP code to another web server (Server B). (I changed
the "localhost" to the hostname of the "web service" server), it's not
working and the process hang at the line where it says "objHTTP.send
strPostData". No response ever came back from Server A. And then the server
(B) is dead and I had to restart IIS to make it live again.
So, my questions is, for some reason, the service can only be called from
local machine. I confirm that port access is not an issues; all file
permissions are taken care of; the <protocol> part of the Machine.Config
looks like this:
<protocols>
<add name="HttpSoap1.2"/>
<add name="HttpSoap"/>
<remove name="HttpPost"/>
<remove name="HttpGet"/>
<remove name="HttpPostLocalhost"/>
<add name="Documentation"/>
</protocols>
I am sure a lot of people have this problem -- because I have it. Thanks if
any one can help!