Por lo regular los webservices tienen definido un metodo booleaon q sea algo como IsAlive pero puedes capturar el httpcode q te regrese la peticion.
supongamos que tienes algo asi como clase proxy de tu webservice
com.rnews.
www.Service1 x = new WindowsFormsApplication1.com.rnews.
www.Service1();
x.Url te da el url de la ubicacion del servicio
entonces puedes tomar un httpwebrequest y mandar un simple request y revisar el httpstatus si fue ok pues continuas si no pues ni mandas tu solicitud.
com.rnews.
www.Service1 x = new WindowsFormsApplication1.com.rnews.
www.Service1();
HttpWebRequest request = HttpWebRequest.Create(x.Url);
HttpWebResponse response=request.GetResponse();
if( response.StatusCode == HttpStatusCode.OK) //entonces haces la invocacion al metodo del webservice.