以下のコード (wcf サーバー) では、クライアントが切断された場合、コードの処理を続行します。現在、catch ステートメントにジャンプして処理を停止しています。コールバックの目的は、最終的にリクエストの進行状況でクライアントを更新することですが、クライアントは任意の段階で必要に応じて切断でき、処理を続行したいです。
public void ChatToServer(string texttoServer) // send some text to the server
{
Logging.Write_To_Log_File("Entry", MethodBase.GetCurrentMethod().Name, "", "", "", 1);
try
{
Thread.Sleep(5000);
IMyContractCallBack callback = OperationContext.Current.GetCallbackChannel<IMyContractCallBack>();
callback.callbacktoServer("Progress is 20% complete");
// Some extremely important processing
....
callback.callbacktoServer("Progress is 40% complete");
// Some extremely important processing
....
callback.callbacktoServer("Progress is 60% complete");
// Some extremely important processing
....
callback.callbacktoServer("Progress is 80% complete");
// Some extremely important processing
....
callback.callbacktoServer("Progress is 100% complete");
}
catch (Exception ex)
{
}
}