OneWayとして定義されているサービスをフォローしています。これは、実行時間が長く(数分)、終了するのが待ちきれないためです(ASP.NETアプリケーションで使用されています)。
問題は、サービス呼び出しの後にclient.Dispose()を呼び出すと、それがブロックされ、60秒後に例外を除いてタイムアウトが期限切れになることです。
そのようなシナリオでクライアントをどのように処分する必要がありますか?サービスのタイムアウトを増やすことは解決策ではありません。なぜなら、それが使用されているWebページのHTTPリクエストを長時間待つことができないからです。
[ServiceContract]
public interface IMyService
{
[OperationContract(IsOneWay = true)]
void BeginRun();
}
var client = new MyServiceClient();
client.BeginRun();
client.Close(); //This leads to time-out, how and when to call it?
ヒントをありがとう。