2009-08-27 15 views
9

Tengo un problema de tiempo de espera en WCF.Problema de tiempo de espera en WCF

El siguiente es el error:

{ "El canal de solicitud de tiempo de espera mientras se espera una respuesta después de 00: 00:. 59.9843744 Aumentar el valor de tiempo de espera pasado a la llamada a la solicitud o aumentar el valor SendTimeout en la unión. el tiempo asignado a esta operación puede haber sido una parte de un tiempo de espera mayor. "}

Después de buscar en Google, he encontrado la solución

de este sitio

http://social.msdn.microsoft.com/Forums/en-US/peertopeer/thread/38306972-3128-4f0c-937b-5d162d4d8e74

Así que cambió en consecuencia mi archivo app.config

<behavior name="ContactServiceBehaviour"> 
    <serviceMetadata httpGetEnabled="true" /> 
    <dataContractSerializer maxItemsInObjectGraph="1000000000"/> 
    <serviceDebug includeExceptionDetailInFaults="true" /> 
    <serviceThrottling maxConcurrentCalls="100" 
         maxConcurrentSessions="100" 
         maxConcurrentInstances="100"/> 
</behavior> 

¿Cuál es la solución?

+1

Hola, no has dado mucho para ir aquí. ¿Estás alojando el servicio? o estás ejecutando un cliente WCF? –

Respuesta

18

La publicación del foro que mencionas es una pista falsa. El mensaje de error indica claramente que necesita aumentar la propiedad de tiempo de espera en el servicio y cliente de WCF. (si lo cambia en el servicio, compruebo que el cliente no siempre lo selecciona cuando se lo actualiza)

En Visual Studio, vaya al menú Herramientas, allí encontrará el 'Editor de configuración del servicio WCF '. Cargue sus proyectos web.config y defina un nuevo enlace para su servicio.

La configuración para cambiar es el valor SendTimeout. Es 60 segundos por defecto.

<system.serviceModel> 
<bindings> 
    <basicHttpBinding> 
    <binding name="WCFBinding" sendTimeout="00:02:00"> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
+1

Parece que eres bastante nuevo en WCF. http://msdn.microsoft.com/en-us/library/ms731067.aspx para algunos excelentes tutoriales –

+1

Los errores de tiempo de espera casi nunca se resuelven al aumentar el tiempo de espera. En general, son causados ​​porque el cliente no puede conectarse al servidor. El tiempo de espera solo existe para que no espere horas o días antes de darse por vencido. –

+1

si es el cliente que espera una tarea larga, entonces 60 segundos no es particularmente largo. y muy probablemente la solución más fácil. –

0

Si desea manejar el tiempo de espera, puede ajustar la llamada del lado del cliente del servicio WCF en un bloque try/catch.

Aquí hay un truco, si no tiene un depurador conectado, un tiempo de espera provocará que se ejecute el bloque catch. Sin embargo, si tiene un depurador conectado, el depurador intercepta el error antes de que llegue al bloque catch.

Cuestiones relacionadas