我有一个Web服务,它接收客户端地址所指向的项目中的信息: http://Server/PaymentWCF/Service.svc?WSDL
ServiceClient client = new ServiceClient();
foreach (Record rc in ListOne)
{
client.RecordInsert(rc);
}
foreach (Record rc in ListTwo)
{
client.RecordInsert(rc);
}
client.Close();
有些时候我们将ServiceClient打开一段时间,因为我们有很多要处理的记录。 (最多3,000)昨晚,我收到以下错误消息:
请求频道在00:04:59.9374976之后等待回复时超时。增加传递给Request的调用的超时值或增加Binding上的SendTimeout值。分配给此操作的时间可能是较长超时的一部分。
但是,绑定在任何地方都没有00:04:59的任何值:
<wsHttpBinding>
<binding name="WSHttpBinding_IService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"
textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="None">
<transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" />
</security>
</binding>
</wsHttpBinding>
如果我们每1,000条记录打开和关闭一次连接,它会起作用吗?客户不会超时,因为它不会长时间开放。处理1000-15000条记录时,我们正常运行。但是当我们有超过3,000的时候,我们就开始看到超时了。
你怎么建议我这样做?
答案 0 :(得分:0)
您是否检查过IIS设置?