设置异步web服务调用超时时间
本文关键字:超时 时间 调用 服务 异步 web 设置 | 更新日期: 2023-09-27 18:04:40
我的Webservice从System.Web.Services.Protocols.SoapHttpClientProtocol
继承
我试图设置超时时间:
service.Timeout = 5000; // 5 secs
但是什么都没有发生——既没有TimeoutException也没有其他任何东西。有一次我尝试没有任何声明,它花了190秒的"Connection Timed Out"
。190是奇怪的,因为我认为,默认是100秒。
无论如何,超时属性似乎只对同步调用起作用,所以在我的情况下,我不知道为什么它不工作。
我像这样异步调用方法:
service.GetInfoCompleted += service_GetInfoCompleted;
service.GetInfoAsync();
我该如何解决我的问题?
感谢任何帮助!
由于没有"本地"的方法这样做-我不得不实现自己的计时器。
在经过的时间b.e 10秒之后,我可以调用异步方法调用的Abort()
你的service.GetInfoAsync()应该返回IAsyncResult。您可以等待5秒操作完成,如果没有完成,则处理超时:
var result = service.GetInfoAsync();
if(!result.AsyncWaitHandle.WaitOne(5000)){
// handle timeout
}