Puede parecer una pregunta tonta, pero todo en WCF parece mucho más complicado que en asmx, ¿cómo puedo aumentar el tiempo de espera de un servicio svc?
Esto es lo que tengo hasta ahora:
<bindings>
<basicHttpBinding>
<binding name="IncreasedTimeout"
openTimeout="12:00:00"
receiveTimeout="12:00:00" closeTimeout="12:00:00"
sendTimeout="12:00:00">
</binding>
</basicHttpBinding>
</bindings>
Y luego mi punto final se mapea así:
<endpoint address=""
binding="basicHttpBinding" bindingConfiguration="IncreasedTimeout"
contract="ServiceLibrary.IDownloads">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
El error exacto que obtengo:
El canal de solicitud agotó el tiempo de espera mientras esperaba una respuesta después de las 00: 00: 59.9990000. Aumente el valor de tiempo de espera pasado a la llamada a Solicitar o aumente el valor de SendTimeout en el enlace. El tiempo asignado a esta operación puede haber sido una parte de un tiempo de espera más largo.
En WCF Test Client, hay un ícono de configuración que contiene la configuración de tiempo de ejecución de mi servicio:
Como puede ver, ¿no son los mismos valores que le he fijado? ¿Qué estoy haciendo mal?
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IDownloads" 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="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="">
<extendedProtectionPolicy policyEnforcement="Never" />
</transport>
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
La mejor manera es cambiar cualquier configuración que desee en su código.
Mira el siguiente ejemplo:
fuente
La configuración del tiempo de espera debe establecerse en el nivel del cliente, por lo que la configuración que estaba configurando en web.config no tuvo ningún efecto, la herramienta de prueba WCF tiene su propia configuración y es allí donde debe establecer el tiempo de espera.
fuente
Recibí el mismo error recientemente, pero pude solucionarlo asegurándome de cerrar cada llamada de cliente de wcf. p.ej.
o
fuente
using
sin eliminar un objeto de canal defectuoso. Aquí hay otro blogger con un enfoque más compatible conusing
bloques: erwyn.bloggingabout.net/2006/12/09/WCF-Service-Proxy-Helper .