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

C# 有没有办法在应用程序级别为客户端应用程序设置WebClientProtocol.Timeout默认值?,c#,web-services,C#,Web Services,如MSDN上所述,web服务请求的默认超时为100秒 使用此示例: // build the request HelloWorldService.HelloWorldService service = new HelloWorldService.HelloWorldService(); HelloWorldService.echo request = new HelloWorldService.echo(); request.arg0 = this.sound; //

如MSDN上所述,web服务请求的默认超时为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服务

有办法做到这一点吗


另一个选择是,我想这是一个异步调用,但我必须等待数据进入下一步,因此更长的超时时间似乎是阻力最小的路径。

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

简单有效,适用于任何电话

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

谢谢你对Neonamu;似乎没有办法设置此属性

我决定改用异步路由。这非常简单(只需再编写几行代码),而且我认为它更加健壮。我不知道为什么我一开始没有走这条路


因此,我的问题的答案是异步调用服务。问题的答案是“否”。

当我们在服务器端添加HelloWorldService时,我们将刷新(并重新生成)客户端项目中的代码。您的建议可能是一项服务最简单的方式。但是,我们还将添加其他服务(MyOtherService、YetAnotherService等),因此如果可能的话,我想一次为所有这些服务配置超时。我希望这是有意义的。是的,现在理解你的问题,但不能想任何方法通过app.config或web.config更改属性。可能是对服务和WebClientprotocol之间的中间类的公共继承,但您将遇到与其他解决方案相同的问题。希望其他用户可以帮助你:)。你回答了问题,所以我接受并投票。这确实让我想到了。我的解决方案是另一个答案。