tipos significado example componentes wcf

significado - wcf vs web api



Aumentar el valor de tiempo de espera en un servicio WCF (4)

¿Te refieres al lado del servidor o al lado del cliente?

Para un cliente, le conviene ajustar el atributo sendTimeout de un elemento de enlace. Para un servicio, le conviene ajustar el atributo receiveTimeout de un elemento vinculante.

<system.serviceModel> <bindings> <netTcpBinding> <binding name="longTimeoutBinding" receiveTimeout="00:10:00" sendTimeout="00:10:00"> <security mode="None"/> </binding> </netTcpBinding> </bindings> <services> <service name="longTimeoutService" behaviorConfiguration="longTimeoutBehavior"> <endpoint address="net.tcp://localhost/longtimeout/" binding="netTcpBinding" bindingConfiguration="longTimeoutBinding" /> </service> ....

Por supuesto, debe asignar su punto final deseado a ese enlace en particular.

¿Cómo aumento el tiempo de espera predeterminado a más de 1 minuto en un servicio WCF?



En el menú Herramientas en Visual Studio 2008 (o 2005 si tiene las cosas correctas de WCF instaladas) 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.


Puedes elegir dos formas:

1) Por código en el cliente

public static void Main() { Uri baseAddress = new Uri("http://localhost/MyServer/MyService"); try { ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService)); WSHttpBinding binding = new WSHttpBinding(); binding.OpenTimeout = new TimeSpan(0, 10, 0); binding.CloseTimeout = new TimeSpan(0, 10, 0); binding.SendTimeout = new TimeSpan(0, 10, 0); binding.ReceiveTimeout = new TimeSpan(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 ... } }

2) Por WebConfig en un servidor web

<configuration> <system.serviceModel> <bindings> <wsHttpBinding> <binding openTimeout="00:10:00" closeTimeout="00:10:00" sendTimeout="00:10:00" receiveTimeout="00:10:00"> </binding> </wsHttpBinding> </bindings> </system.serviceModel>

Para más detalles ver la documentación oficial

Configurar los valores de tiempo de espera en un enlace

Clase WSHttpBinding