有没有办法在客户端应用程序的应用程序级别设置WebClientProtocol.Timeout默认值?

时间:2011-02-16 22:31:02

标签: c# web-services

如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服务。

有办法做到这一点吗?

另一个选择是让它成为异步调用,我想,但我必须等待数据转到我的后续步骤,所以更长的超时似乎是路径阻力最小。

2 个答案:

答案 0 :(得分:2)

为什么不在webservice的构造函数方法中设置属性?

任何通话都很简单有效。

public HelloWorldService()
{
   //some code...
   this.Timeout = Miliseconds;
}

答案 1 :(得分:0)

感谢Neonamu;似乎没有办法设置这个属性。

我决定改用异步路线。它非常简单(只需要几行代码),而且我认为它非常强大。我不知道为什么我一开始就没有走这条路。

所以答案是我的问题是异步调用服务。问题的答案是“不”。