IPC に .net リモート処理を使用するアプリに取り組んでいます。
クライアント アプリが起動すると、次のコードを使用してサーバーに接続します。
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);
このコードはそのままでうまく機能します。ただし、起動時にサーバーが実行されているかどうかをクライアントに検出させ、適切なエラー メッセージを表示させたいと考えています。
サーバーが実行されていない場合、クライアントは Web 例外をスローする前に約 3 秒間待機します (下部に表示)。エラー「場所」がないため、try\catch ブロックをどこに置くかわかりません。
サーバーが実行されていないことを検出する最良の方法は何ですか?
ありがとう!