Какое время ожидания веб-службы? Вы пытались настроить тайм-аут?
Я бы добавил Thread.Sleep (5000); в веб-сервисе, затем установите тайм-аут в клиенте на 2 секунды, затем запустите с помощью отладчика и убедитесь, что исключение перехватывается по истечении времени ожидания. Делайте это при подключении к сети.
Тогда вы захотите отобразить какое-либо сообщение об ошибке, если после определенного числа попыток служба все еще не работает. Затем вы захотите подождать настраиваемое количество времени, прежде чем повторять попытку. Вы также можете позволить пользователю попытаться восстановить соединение вручную.