Я работаю над приложением, использующим удаленную сеть .net для IPC..net Remoting: обнаружение, если сервер не запущен
Когда мой клиент приложение запускается, он использует следующий код для подключения к серверу:
chnl = gcnew HttpChannel();
ChannelServices::RegisterChannel(chnl, false);
IPCObjectInstance = (BaseRemoteObject)Activator.GetObject(
typeof(BaseRemoteObject),
"http://localhost:1237/MyRemoteObject.soap");
И, когда я делаю мой вызов функции, я использую следующий код:
BaseRemoteObject.GetFileTextDelegate svd = new BaseRemoteObject.GetFileTextDelegate(IPCObjectInstance, BaseRemoteObject.GetFileText);
AsyncCallback callback = new AsyncCallback(this, &ClientGUI.RecievedStringText);
IAsyncResult arValSet = svd.BeginInvoke(callback, null);
Этот код работает отлично как есть. Тем не менее, я хочу, чтобы мой клиент обнаружил, работает ли сервер при его загрузке и отображает соответствующее сообщение об ошибке.
Когда сервер не запущен, клиент ждет около 3 секунд, прежде чем выбросить веб-исключение (показано внизу). Ошибка «location» отсутствует, поэтому я не уверен, куда положить блок try \ catch.
Каков наилучший способ обнаружить, что мой сервер не работает?
Спасибо!
Функция DoNothing, называемая синхронно работала отлично, спасибо! – greggorob64