[英]Channel time out error when trying to invoke a webservice
调用时出现此错误
请求通道在00:00:59.9970702之后等待答复时超时。 增加传递给请求的调用的超时值,或者增加绑定上的SendTimeout值。 分配给该操作的时间可能是较长超时的一部分。
我已经在SO WCF中看到了这一点,它在大约10次左右的调用后停止响应(节流)
但是我不知道该在哪里实现。无论是在我的webconfig文件还是webservice配置文件中。有什么建议吗?
编辑(1):
这是我的webconfig文件
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BinaryCertTokenOverSSL" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Certificate" algorithmSuite="Default" />
</security>
</binding>
<binding name="UserNameTokenOverSSLBinding" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
<wsHttpBinding>
<binding name="WSBinaryCertReliable" 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="true" />
<security mode="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Certificate" negotiateServiceCredential="false"
algorithmSuite="Default" establishSecurityContext="true" />
</security>
</binding>
<binding name="WSUserNameReliable" 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="true" />
<security mode="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" negotiateServiceCredential="false"
algorithmSuite="Default" establishSecurityContext="true" />
</security>
</binding>
<binding name="WSBinaryCert" 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="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Certificate" negotiateServiceCredential="false"
algorithmSuite="Default" establishSecurityContext="false" />
</security>
</binding>
<binding name="WSUserName" 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="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" negotiateServiceCredential="false"
algorithmSuite="Default" establishSecurityContext="false" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://XXXvm134.rsimail.rsil.XXX.com/VWWebservice/VWSecurityServices.svc/WsBinaryCertReliable"
binding="wsHttpBinding" bindingConfiguration="WSBinaryCertReliable"
contract="IVWSecurityServices" name="WSBinaryCertReliable">
<identity>
<certificate encodedValue="AwAAAAEAAAAUAAAAch9c8R+87NcfIPn0imYdQaHEFp8gAAAAAQAAAFcCAAAwggJTMIIBvKADAgECAhA3Zx4Bjx6gs0Cu4C0/9OpuMA0GCSqGSIb3DQEBBAUAMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbTAeFw05OTEyMzExODMwMDBaFw0xNDEyMzExODMwMDBaMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtcad6zbauhN5mo54MDt4JAuTtU0MIOuhXhsUGIGYkZ4+mhav3oCRiALzQWLfmm6jQZAsW8LXE/p1UZLfenaHRWTcDxZ0Qvuow51NU4r30Fr7U+XQCQNytaVHI/aYk2CreaOoPzlMxrFjw33yShBi9LXsM7FQZL3sAWFro2/A74sCAwEAAaN2MHQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwXQYDVR0BBFYwVIAQI72gtckgLr+CwMqK5vo11qEuMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbYIQN2ceAY8eoLNAruAtP/TqbjANBgkqhkiG9w0BAQQFAAOBgQAYUlt7PX01iokgi8jW96tdBiaJIb7XBt9DgUPqAhunbSrPq/sNaIy+hLBJ7W174Ozh0r/cJp18WoCD8S0IbBvvs3aSaCoBPAa+Rb2OSx21QgEpZ5+flxaXK9HxY0WmmTXRqsgR4bplZ5F1RFX9x6Px+yyQzu+IBPpwcL8JSs+pvA==" />
</identity>
</endpoint>
<endpoint address="https://XXXvm134.rsimail.rsil.XXX.com/VWWebservice/VWSecurityServices.svc/BinaryCertTokenOverSSL"
binding="basicHttpBinding" bindingConfiguration="BinaryCertTokenOverSSL"
contract="IVWSecurityServices" name="BinaryCertTokenOverSSL" />
<endpoint address="http://XXXvm134.rsimail.rsil.XXX.com/VWWebservice/VWSecurityServices.svc/WSUserNameReliable"
binding="wsHttpBinding" bindingConfiguration="WSUserNameReliable"
contract="IVWSecurityServices" name="WSUserNameReliable">
<identity>
<certificate encodedValue="AwAAAAEAAAAUAAAAch9c8R+87NcfIPn0imYdQaHEFp8gAAAAAQAAAFcCAAAwggJTMIIBvKADAgECAhA3Zx4Bjx6gs0Cu4C0/9OpuMA0GCSqGSIb3DQEBBAUAMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbTAeFw05OTEyMzExODMwMDBaFw0xNDEyMzExODMwMDBaMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtcad6zbauhN5mo54MDt4JAuTtU0MIOuhXhsUGIGYkZ4+mhav3oCRiALzQWLfmm6jQZAsW8LXE/p1UZLfenaHRWTcDxZ0Qvuow51NU4r30Fr7U+XQCQNytaVHI/aYk2CreaOoPzlMxrFjw33yShBi9LXsM7FQZL3sAWFro2/A74sCAwEAAaN2MHQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwXQYDVR0BBFYwVIAQI72gtckgLr+CwMqK5vo11qEuMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbYIQN2ceAY8eoLNAruAtP/TqbjANBgkqhkiG9w0BAQQFAAOBgQAYUlt7PX01iokgi8jW96tdBiaJIb7XBt9DgUPqAhunbSrPq/sNaIy+hLBJ7W174Ozh0r/cJp18WoCD8S0IbBvvs3aSaCoBPAa+Rb2OSx21QgEpZ5+flxaXK9HxY0WmmTXRqsgR4bplZ5F1RFX9x6Px+yyQzu+IBPpwcL8JSs+pvA==" />
</identity>
</endpoint>
<endpoint address="http://XXXvm134.rsimail.rsil.XXX.com/VWWebservice/VWSecurityServices.svc/WSBinaryCert"
binding="wsHttpBinding" bindingConfiguration="WSBinaryCert"
contract="IVWSecurityServices" name="WSBinaryCert">
<identity>
<certificate encodedValue="AwAAAAEAAAAUAAAAch9c8R+87NcfIPn0imYdQaHEFp8gAAAAAQAAAFcCAAAwggJTMIIBvKADAgECAhA3Zx4Bjx6gs0Cu4C0/9OpuMA0GCSqGSIb3DQEBBAUAMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbTAeFw05OTEyMzExODMwMDBaFw0xNDEyMzExODMwMDBaMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtcad6zbauhN5mo54MDt4JAuTtU0MIOuhXhsUGIGYkZ4+mhav3oCRiALzQWLfmm6jQZAsW8LXE/p1UZLfenaHRWTcDxZ0Qvuow51NU4r30Fr7U+XQCQNytaVHI/aYk2CreaOoPzlMxrFjw33yShBi9LXsM7FQZL3sAWFro2/A74sCAwEAAaN2MHQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwXQYDVR0BBFYwVIAQI72gtckgLr+CwMqK5vo11qEuMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbYIQN2ceAY8eoLNAruAtP/TqbjANBgkqhkiG9w0BAQQFAAOBgQAYUlt7PX01iokgi8jW96tdBiaJIb7XBt9DgUPqAhunbSrPq/sNaIy+hLBJ7W174Ozh0r/cJp18WoCD8S0IbBvvs3aSaCoBPAa+Rb2OSx21QgEpZ5+flxaXK9HxY0WmmTXRqsgR4bplZ5F1RFX9x6Px+yyQzu+IBPpwcL8JSs+pvA==" />
</identity>
</endpoint>
<endpoint address="http://XXXvm134.rsimail.rsil.XXX.com/VWWebservice/VWSecurityServices.svc/WSUserName"
binding="wsHttpBinding" bindingConfiguration="WSUserName"
contract="IVWSecurityServices" name="WSUserName">
<identity>
<certificate encodedValue="AwAAAAEAAAAUAAAAch9c8R+87NcfIPn0imYdQaHEFp8gAAAAAQAAAFcCAAAwggJTMIIBvKADAgECAhA3Zx4Bjx6gs0Cu4C0/9OpuMA0GCSqGSIb3DQEBBAUAMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbTAeFw05OTEyMzExODMwMDBaFw0xNDEyMzExODMwMDBaMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtcad6zbauhN5mo54MDt4JAuTtU0MIOuhXhsUGIGYkZ4+mhav3oCRiALzQWLfmm6jQZAsW8LXE/p1UZLfenaHRWTcDxZ0Qvuow51NU4r30Fr7U+XQCQNytaVHI/aYk2CreaOoPzlMxrFjw33yShBi9LXsM7FQZL3sAWFro2/A74sCAwEAAaN2MHQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwXQYDVR0BBFYwVIAQI72gtckgLr+CwMqK5vo11qEuMCwxKjAoBgNVBAMTIXJhbWNvdm0xMzQucnNpbWFpbC5yc2lsLnJhbWNvLmNvbYIQN2ceAY8eoLNAruAtP/TqbjANBgkqhkiG9w0BAQQFAAOBgQAYUlt7PX01iokgi8jW96tdBiaJIb7XBt9DgUPqAhunbSrPq/sNaIy+hLBJ7W174Ozh0r/cJp18WoCD8S0IbBvvs3aSaCoBPAa+Rb2OSx21QgEpZ5+flxaXK9HxY0WmmTXRqsgR4bplZ5F1RFX9x6Px+yyQzu+IBPpwcL8JSs+pvA==" />
</identity>
</endpoint>
<endpoint address="https://XXXvm134.rsimail.rsil.XXX.com/VWWebservice/VWSecurityServices.svc/UserNameTokenOverSSL"
binding="basicHttpBinding" bindingConfiguration="UserNameTokenOverSSLBinding"
contract="IVWSecurityServices" name="UserNameTokenOverSSLBinding" />
</client>
</system.serviceModel>
这是我的网络服务配置文件
<system.serviceModel>
<extensions>
<bindingElementExtensions>
<add name="sslOffloadedHttpsTransport" type="XXX.VW.Web.Services.CustomBinding.SSLOffloadedHttpsTransportElement, XXX.VW.RT.WebServices.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" />
</bindingElementExtensions>
</extensions>
<behaviors>
<serviceBehaviors>
<behavior name="e-ServiceBehavior">
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="None" revocationMode="Online" />
</clientCertificate>
<serviceCertificate findValue="XXXvm134.rsimail.rsil.XXX.com" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="XXX.VW.RT.VWCustomUserValidator,XXX.VW.RT.Library" />
</serviceCredentials>
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />
<serviceAuthorization principalPermissionMode="None" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="UserNameTokenOverSSLBinding">
<security mode="TransportWithMessageCredential" />
</binding>
<binding name="BinaryCertTokenOverSSLBinding" closeTimeout="00:10:00" openTimeout="00:10:00" sendTimeout="00:10:00">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="Certificate" />
</security>
</binding>
<binding name="Vw30BasicHttpBinding" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" maxBufferSize="65536" maxReceivedMessageSize="65536">
<security>
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" />
</security>
</binding>
</basicHttpBinding>
<customBinding>
<binding name="Vw30netTcpHABinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:01:00" sendTimeout="00:01:00">
<binaryMessageEncoding>
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binaryMessageEncoding>
<tcpTransport maxBufferPoolSize="524288" maxReceivedMessageSize="99999998" connectionBufferSize="8192" hostNameComparisonMode="StrongWildcard" channelInitializationTimeout="00:01:00" maxBufferSize="99999998" maxPendingConnections="20" maxOutputDelay="00:00:00.2000000" maxPendingAccepts="5" transferMode="Buffered" listenBacklog="20" portSharingEnabled="false" teredoEnabled="false">
<connectionPoolSettings groupName="default" leaseTimeout="00:00:02" idleTimeout="00:02:00" maxOutboundConnectionsPerEndpoint="20" />
</tcpTransport>
</binding>
<binding name="Vw30HttpHABinding">
<textMessageEncoding />
<httpTransport keepAliveEnabled="false">
</httpTransport>
</binding>
<binding name="UserNameTokenOverSSLOffloaderBinding">
<textMessageEncoding messageVersion="Soap11" />
<security authenticationMode="UserNameOverTransport">
<secureConversationBootstrap />
</security>
<sslOffloadedHttpsTransport />
</binding>
<binding name="BinaryCertTokenOverSSLOffloaderBinding">
<textMessageEncoding messageVersion="Soap11" />
<security authenticationMode="UserNameOverTransport">
<secureConversationBootstrap />
</security>
<sslOffloadedHttpsTransport />
</binding>
</customBinding>
<netTcpBinding>
<binding name="Vw30netTcpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:01:00" sendTimeout="00:01:00" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536">
<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="None" protectionLevel="None" />
<message clientCredentialType="None" />
</security>
</binding>
</netTcpBinding>
<wsHttpBinding>
<binding name="WSUserNameBinding" transactionFlow="true">
<security>
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" negotiateServiceCredential="false" establishSecurityContext="false" />
</security>
</binding>
<binding name="WSBinaryCertBinding" transactionFlow="true">
<security>
<transport clientCredentialType="None" />
<message clientCredentialType="Certificate" negotiateServiceCredential="false" establishSecurityContext="false" />
</security>
</binding>
<binding name="WSUserNameReliableBinding" closeTimeout="00:10:00" openTimeout="00:10:00" sendTimeout="00:10:00" transactionFlow="true">
<reliableSession enabled="true" />
<security>
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" negotiateServiceCredential="false" />
</security>
</binding>
<binding name="WsBinaryCertReliableBinding" transactionFlow="true">
<reliableSession enabled="true" />
<security>
<transport clientCredentialType="None" />
<message clientCredentialType="Certificate" negotiateServiceCredential="false" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<services configSource="Web.Services.config" />
<!--Should be uncommented when webservices are consumed through SSL Offloaders, and the application pool should be set to use .NET framework 4.0. -->
<!--<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> -->
</system.serviceModel>
这通常归结为会话和节流
在.NET 4之前,默认的最大并发会话数为10。这意味着第11个并发会话等待另一个并发会话消失,并最终导致客户端发送超时(默认为1分钟)。
在.NET 4之后,默认值为100 x处理器(核心)数,因此被命中的可能性大大降低
您有3种选择:
一般建议,因为很难确定哪个服务导致了您的错误:
确保您的超时值在服务和客户端的配置中匹配。
对于刚接触Web服务的人们来说,这是一个非常普遍的问题。 如果增加一个值,通常最好增加另一端的匹配值。
因此,请确保所有绑定行为的服务和客户端上的所有超时值都匹配,然后再进行尝试。
如果这不起作用,请尝试通过添加零并尝试一下来增加所有值。 如果可行,则开始减少超时,直到找到导致问题的原因,然后对其进行调整。
解决这个问题还有很长的路要走,但是由于您不知道哪个服务引起了问题,这可能是您最好的选择。
可能是您在致电服务后尚未关闭对象。
例:
WCFServices.Module1 objWCFServ =新的WCFServices.Module1(); 数据集ds = obj.MethodName(param1,param2); .....
objWCFServ.Close(); objWCFServ = null;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.