Lo que no está claro, pero creo que está preguntando implícitamente, es si es posible configurar en el lado del servidor para agotar el tiempo de espera de cualquier llamada que tarde más de un minuto en procesarse. Esto no es posible
gravidThoughts
Respuestas:
196
¿Te refieres al lado del servidor o al lado del cliente?
Para un cliente, desearía ajustar el atributo sendTimeout de un elemento de enlace. Para un servicio, desearía ajustar el atributo ReceiveTimeout de un elemento vinculante.
¿Cómo mapeo el enlace, usando el 'nombre de enlace' dentro de la etiqueta de punto final?
Blankman
Esto es simplemente incorrecto. En receiveTimeoutel lado del servidor, se determina la inactividad de los enlaces basados en sesión. Por ejemplo, el servidor no usará esta configuración para enlaces básicos HTTP.
Debe
45
Debajo del menú Herramientas en Visual Studio 2008 (o 2005 si tiene instalado el material WCF correcto) hay una opción llamada 'Editor de configuración de servicio WCF'.
Desde allí, puede cambiar las opciones de enlace tanto para el cliente como para los servicios, una de estas opciones será para los tiempos de espera.
publicstaticvoidMain(){Uri baseAddress =newUri("http://localhost/MyServer/MyService");try{ServiceHost serviceHost =newServiceHost(typeof(CalculatorService));WSHttpBinding binding =newWSHttpBinding();
binding.OpenTimeout=newTimeSpan(0,10,0);
binding.CloseTimeout=newTimeSpan(0,10,0);
binding.SendTimeout=newTimeSpan(0,10,0);
binding.ReceiveTimeout=newTimeSpan(0,10,0);
serviceHost.AddServiceEndpoint("ICalculator", binding, baseAddress);
serviceHost.Open();// The service can now be accessed.Console.WriteLine("The service is ready.");Console.WriteLine("Press <ENTER> to terminate service.");Console.WriteLine();Console.ReadLine();}catch(CommunicationException ex){// Handle exception ...}}
Respuestas:
¿Te refieres al lado del servidor o al lado del cliente?
Para un cliente, desearía ajustar el atributo sendTimeout de un elemento de enlace. Para un servicio, desearía ajustar el atributo ReceiveTimeout de un elemento vinculante.
Por supuesto, debe asignar su punto final deseado a ese enlace particular.
fuente
receiveTimeout
el lado del servidor, se determina la inactividad de los enlaces basados en sesión. Por ejemplo, el servidor no usará esta configuración para enlaces básicos HTTP.Debajo del menú Herramientas en Visual Studio 2008 (o 2005 si tiene instalado el material WCF correcto) hay una opción llamada 'Editor de configuración de servicio WCF'.
Desde allí, puede cambiar las opciones de enlace tanto para el cliente como para los servicios, una de estas opciones será para los tiempos de espera.
fuente
Diferentes tiempos de espera significan cosas diferentes. Cuando está trabajando en el cliente ... probablemente esté viendo principalmente SendTimeout - verifique esta referencia - explicación maravillosa y relevante: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread / 84551e45-19a2-4d0d-bcc0-516a4041943d /
fuente
Puedes elegir dos formas:
1) Por código en el cliente
2) Por WebConfig en un servidor web
Para más detalles ver las documentaciones oficiales
Configuración de valores de tiempo de espera en un enlace
Clase WSHttpBinding
fuente
Además de los tiempos de espera vinculantes (que están en
Timespan
s), es posible que también necesite esto. Esto es en segundos.fuente