HTTP 503 (Service Unavailable) error when calling a webservice inside the network
This problem has been driving me mad for the past few days. I am
basically writing a generic utility in .NET/C# that can read any WSDL
file (over internet, intranet, localdir etc), generate dynamic proxy
on the fly and allow the user to invoke the methods.
It works perfectly *except* in these scenarios:
1) If I try to call a webservice deployed on another machine _within_
our network (LAN), WebResponse.GetResponse() fails with a Server
Unavailable Error (503).
2) To solve the above if I specify the correct proxy settings using
WebProxy.Address property, the WSDL file is retrieved alright.
2A) However if I assign WebRequest.Proxy with
WebProxy.GetDefaultProxy() then the WSDL retrieval fails again. But
lets for the moment ignore this and assume I am ok with step 2.
3) After I successfully create the dynamic proxy (using CodeDOM et
al), the MethodInfo.Invoke(objectinstance, argsforthemethod) blows up
with a WebException. I am attaching the stack trace in the bottom of
4) I tried setting the Proxy property of SoapHttpClientProtocol
(objectinstance.GetProperty("Proxy") et al) but that has no effect.
5) Everything works PERFECTLY WELL if I access a public domain WSDL on
the internet (with or without the proxy settings -- it doesnt seem to
So bottom line is can somebody *please* tell me why this is not
working in the LAN scenario? and that too only when I invoke the
method and not when I retrieve the WSDL file?
Exception has been thrown by the target of an invocation.
System.Net.WebException: The request failed with HTTP status 503:
at System.Web.Services.Protocols.SoapHttpClientProtoc ol.ReadResponse(SoapClientMessage
message, WebResponse response, Stream responseStream)
at System.Web.Services.Protocols.SoapHttpClientProtoc ol.Invoke(String
methodName, Object parameters)
at WebServices.dynamicProxyGenerator.DynamicProxy.AMS WebService.echoHeartBeat(String
WebException.Response ---> System.Net.HttpWebResponse
WebException.Source ---> System.Web.Services
WebException.Status ---> ProtocolError
WebException.TargetSite.Name ---> ReadResponse
I ran Simon Fell's (www.pocketsoap.com) excellent tcpTrace utility.
In the LAN case I am able to see a GET request for my WSDL file (GET
/amswebservice/amswebservice.wsdl HTTP/1.1) and the subsequent
response. But when a method is invoked it doesn't even seem to hit
the webserver. Its intercepted somewhere in between and I can't
figure out where.
thanks a ton!
Re: HTTP 503 (Service Unavailable) error when calling a webservice inside the network
email@example.com (Dilip) wrote in message news:<firstname.lastname@example.org. com>...
> So bottom line is can somebody *please* tell me why this is not
> working in the LAN scenario? and that too only when I invoke the
> method and not when I retrieve the WSDL file?
I fixed this myself. Apparently I neglected to set the same proxy
server configuration on SoapHttpClientProtocol.Proxy property.
I still can't understand one point though. I basically copied the
entire proxy server settings found on IE's Tools->Internet
Options->Connection->LAN Settings page into
SoapHttpClientProtocol.Proxy property. However the application fails
if I simply call WebProxy.GetDefaultProxy(). what is the difference
between these 2 ways of setting up proxies? Why does the former work
while the latter fails?
|All times are GMT. The time now is 07:40 PM.|
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.