如何在asp.net中增加web服务的超时时间?

时间:2011-09-02 06:07:57

标签: .net winforms web-services timeout

我创建了一个asmx类型的Web服务。我在.net Windows应用程序中使用我的Web服务。

来自Web服务的Web方法接收对象的字节数组转换&我的类的对象具有不同的属性,其中我以字符串的形式添加一个xml文件。当我的包含xml数据的字符串增加时,它会在向Web服务发送数据时给出“超时”错误。

如何增加网络服务的超时时间?

3 个答案:

答案 0 :(得分:21)

1 - 您可以在应用程序中设置超时:

var client = new YourServiceReference.YourServiceClass();
client.Timeout = 60; // or -1 for infinite

2 - 您还可以在web / app.config中的httpruntime标记中增加超时值:

<configuration>
     <system.web>
          <httpRuntime executionTimeout="<<seconds>>" />
          ...
     </system.web>
</configuration>

答案 1 :(得分:15)

你可以用不同的方式做到这一点:

  1. 从代码中设置Web服务调用方的超时(不是100%肯定,但我认为我已经看到了这一点);
  2. 在Web引用中的Web服务代理的构造函数中设置超时;
  3. 在服务器端设置超时,Web服务应用程序的web.config。
  4. 请参阅此处了解有关第二种情况的更多详情:

    http://msdn.microsoft.com/en-us/library/ff647786.aspx#scalenetchapt10_topic14

    以及最后案例的详细信息:

    How to increase the timeout to a web service request?

答案 2 :(得分:2)

在app.config文件(或.exe.config)中 您可以在绑定中添加或更改“receiveTimeout”属性。 像这样

<binding name="WebServiceName" receiveTimeout="24:00:00" />