如MSDN here所述,网络服务请求的默认超时为100秒。
使用此示例:
// build the request
HelloWorldService.HelloWorldService service
= new HelloWorldService.HelloWorldService();
HelloWorldService.echo request = new HelloWorldService.echo();
request.arg0 = this.sound;
// go get it!
HelloWorldService.echoResponse response = service.echo(request);
this.echo = response.@return;
如果获得响应的时间超过100秒,则按预期超时。但是,我在服务器端有一些慢查询。我可以以编程方式设置service.Timout
属性,但我想在设置文件中将其设置为应用程序级别,而不必担心在每次调用时设置它,因为我将是连接到一堆不同的Web服务。
有办法做到这一点吗?
另一个选择是让它成为异步调用,我想,但我必须等待数据转到我的后续步骤,所以更长的超时似乎是路径阻力最小。
答案 0 :(得分:2)
为什么不在webservice的构造函数方法中设置属性?
任何通话都很简单有效。
public HelloWorldService()
{
//some code...
this.Timeout = Miliseconds;
}
答案 1 :(得分:0)
感谢Neonamu;似乎没有办法设置这个属性。
我决定改用异步路线。它非常简单(只需要几行代码),而且我认为它非常强大。我不知道为什么我一开始就没有走这条路。
所以答案是我的问题是异步调用服务。问题的答案是“不”。