WebService SendTimeout 超时问题
分类:.Net知识问答| 发布:camnprbubuol| 查看: | 发表时间:2011/11/28
System.TimeoutException: 请求通道在等待 00:01:00 以后答复时超时。增加传递给请求调用的超时值,或者增加绑定上的 SendTimeout 值。分配给此操作的时间可能是更长超时的一部分。
WCF中解决方案:
1)首先保证客户端每次建立的连接在使用完成后进行关闭.即调用Close()方法,否则此连接会在设置的会话(一般为10分钟)后才自动关闭.期间任何客户端也无法使用此服务.
2)如果默认的连接数不能满足客户端的需要,可以增加连接数.配置文件如下:
<serviceThrottling maxConcurrentCalls="20" maxConcurrentSessions="20" maxConcurrentInstances="30" />
说明:maxConcurrentCalls :最大并发数,默认为16
maxConcurrentSessions :最大的会话数,主要针对于PerSession的情况,默认为10
maxConcurrentInstances:最大实例数,默认为26
在.net webService 中:
设置这些参数,延长连接时间,
closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
其中有设置连接数据量大小的参数:
- <system.serviceModel>
- <bindings>
- <basicHttpBinding>
- <binding name="fuyiDataSoap" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false"
- bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483646" maxBufferPoolSize="2147483646"
- maxReceivedMessageSize="2147483646" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
- <readerQuotas maxDepth="32" maxStringContentLength="2147483646" maxArrayLength="2147483646" maxBytesPerRead="2147483646" maxNameTableCharCount="2147483646" />
- <security mode="None">
- <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
- <message clientCredentialType="UserName" algorithmSuite="Default" />
- </security>
- </binding>
- </basicHttpBinding>
- </bindings>
- <behaviors>
- <endpointBehaviors>
- <behavior name="RestfulEndpointBehavior">
- <dataContractSerializer maxItemsInObjectGraph="2147483647" />
- </behavior>
- </endpointBehaviors>
- </behaviors>
- <client>
- <endpoint address="http://121.101.215.59/FuyiZXDataService/fuyiData.asmx" binding="basicHttpBinding" bindingConfiguration="fuyiDataSoap" contract="FuyiZXDataService.fuyiDataSoap" name="fuyiDataSoap" />
- </client>
-
- </system.serviceModel>