web serivce: client side timeout?

H

hzgt9b

Using VS2005, VB.NET,

BACKGROUND
I have a windows forms application that makes calls to a web service.
All my clients work on project provided laptops (all have exact same
set-up, configuration and software installations). The service is long
running (uploading large files) so to avoid timeouts we set the client
side timeout to be infinite:

Dim objWebService As New org.myCompany.myDomain.myServices
objWebService.Timeout = Timeout.Infinite

The server side timeout is set to have a long timeout window (30
minutes) also.

PROBLEM
Given this setup I would not expect timeouts to be possible from the
client side but only from the server side. But here is an error
message that some (not all) of my clients are getting:

System.Net.WebException: Unable to connect to the remote server ---
> System.Net.Sockets.SocketException: A connection attempt failed
because the connected party did not properly respond after a period of
time, or established connection failed because connected host has
failed to respond
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,
SocketAddress socketAddress)
at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean
connectFailure, Socket s4, Socket s6, Socket& socket,
IPAddress& address, ConnectSocketState state, IAsyncResult
asyncResult, Int32 timeout, Exception& exception)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetRequestStream()
at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters)
at myApp.org.myCompany.myDomain.myServices.Upload(String,
DateTime , String, String, Object) at myApp.myClass.myMethod()


To me this looks like the client side is not able to reach the web
service and is timing out. Because I control what is installed on the
client machines I can rule out third party conflicts (fire walls, anti-
virus, and such). Why else would I be getting a client side timeout
given my set-up (i.e. web service timeout set to infinite)? If this is
not a client side timeout please correct me! BTW, the web service is
on a secure site (https) and I do set the web service object's
credentials to a properly configured NetworkCredential object. Could
the credentials in my NetworkCredential object expire causing a
timeout (don't think so, just grabbing for straws)?

Any thoughts appreciated.

celoftis
 
K

kimiraikkonen

Using VS2005, VB.NET,

BACKGROUND
I have a windows forms application that makes calls to a web service.
All my clients work on project provided laptops (all have exact same
set-up, configuration and software installations). The service is long
running (uploading large files) so to avoid timeouts we set the client
side timeout to be infinite:

            Dim objWebService As New org.myCompany.myDomain.myServices
            objWebService.Timeout = Timeout.Infinite

The server side timeout is set to have a long timeout window (30
minutes) also.

PROBLEM
Given this setup I would not expect timeouts to be possible from the
client side but only from the server side. But here is an error
message that some (not all) of my clients are getting:

System.Net.WebException: Unable to connect to the remote server ---
> System.Net.Sockets.SocketException: A connection attempt failed
because the connected party did not properly respond after a period of
time, or established connection failed because connected host has
failed to respond
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,
SocketAddress socketAddress)
   at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean
connectFailure, Socket s4, Socket s6, Socket& socket,
IPAddress& address, ConnectSocketState state, IAsyncResult
asyncResult, Int32 timeout, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.GetRequestStream()
   at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters)
   at myApp.org.myCompany.myDomain.myServices.Upload(String,
DateTime , String, String, Object)  at myApp.myClass.myMethod()

To me this looks like the client side is not able to reach the web
service and is timing out. Because I control what is installed on the
client machines I can rule out third party conflicts (fire walls, anti-
virus, and such). Why else would I be getting a client side timeout
given my set-up (i.e. web service timeout set to infinite)? If this is
not a client side timeout please correct me! BTW, the web service is
on a secure site (https) and I do set the web service object's
credentials to a properly configured NetworkCredential object. Could
the credentials in my NetworkCredential object expire causing a
timeout (don't think so, just grabbing for straws)?

Any thoughts appreciated.

celoftis

It seems some of your app's clients fail to respond. IIUC, though you
set timeout value to infinite, infinite timeout value is being
overridden. Are you sure that you're appliying all the network
credential settings and infinite timeout value to ALL clients? Or
other 3rd party apps on client-side may have override your web
service's timeout value such as misconfigured firewalls etc.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top