2011-09-02 86 views
14

我创建了一个asmx类型的Web服务。我在.net窗口应用程序中使用我的Web服务。如何增加asp.net中web服务的超时时间?

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

如何增加web服务的超时时间?

谢谢。

回答

8

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

  1. 设置从代码中的Web服务调用者超时(不是100%肯定,但我想我已经看到这种情况);
  2. 在Web引用中的Web服务代理的构造函数中设置超时值;
  3. 在服务器端设置超时,web服务应用程序的web.config。

在这里看到更多的细节在第二种情况:

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

和这里对后一种情况的详细信息:

How to increase the timeout to a web service request?

+0

我用第二个选项和设置Web服务代理类属性的超时属性,但它抛出一个异常为'基础连接已经关闭:连接被关闭unexpectedly.' – Priyanka

15

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

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

它在

2 - 你也可以在网页/ app.config中增加的httpRuntime标记超时值:

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

。注意的httpRuntime元件放在这里: <结构> <的httpRuntime executionTimeout = “600000”/> ... –

+2

根据https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.100 ).aspx属性用秒表示,而不是毫秒。 –

+0

@SueMaurizio感谢您的修正。 – MOH3N

1

在app.config文件(或.exe.config) 您可以添加或更改“receiveTimeout “绑定中的财产。 这样

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

它是正确的吗?请解释一下。 –