El canal de transporte Http en WCF usa conexiones HTTP persistentes de manera predeterminada. ¿Cómo controlar el tiempo de espera vivo para esas conexiones? El valor predeterminado es 100s. Encontré ese valor al monitorear la aplicación en Procmon. No he encontrado ninguna configuración en el elemento de enlace de transporte HTTP que configura este tiempo de espera. ¿Hay alguna clase .NET que pueda controlar ese tiempo de espera?Cómo configurar el intervalo de mantener activo para la conexión HTTP en WCF
Respuesta
Echa un vistazo aquí:
Hay una discusión detallada de la manipulación de la propiedad mantener viva durante una conexión HTTP.
De this answer, y lo que puedo leer here, parece que quiere crear un enlace HTTP personalizado y establecer el atributo inactivityTimeout
.
Desde el artículo de MSDN:
<bindings> <customBinding> <binding name="Binding1"> <reliableSession acknowledgementInterval="00:00:00.2000000" enableFlowControl="true" maxTransferWindowSize="32" inactivityTimeout="00:10:00" maxPendingChannels="128" maxRetryCount="8" ordered="true" /> <security mode="None"/> <httpTransport authenticationScheme="Anonymous" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" proxyAuthenticationScheme="Anonymous" realm="" useDefaultWebProxy="true" /> </binding> </customBinding> </bindings>
No. Quiero configurar HTTP mantener vivo no sesión Confiable mantener vivo. HTTP keep alive se describe en la especificación del protocolo HTTP. –
Parece que las conexiones HTTP siempre deben ser persistentes, según RFC 2616 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1.1). – louisgab
No lo creo. El RFC dice que la implementación HTTP debe implementar conexiones persistentes HTTP. No es que solo se deba usar una conexión persistente. –
¿Qué tal esto? Parece que puede ser una función de su servidor IIS y nada que ver con el servicio WCF? Sé que este enlace se aplica a IIS6, pero tal vez sirva de base para algo similar en IIS7. http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/73566f83-c257-4941-8ed8-7ae45b2e7985.mspx?mfr=true
Ya he intentado configurar el tiempo de espera de conexión en IIS y no funcionó. No está relacionado con mantener la configuración viva. De todos modos lo intentaré de nuevo durante los próximos días. Si funciona, estableceré la nueva recompensa y te premiaré. –
Me parece que quiere ajustar el encabezado HTTP Keep-Alive
. Debería leer this article en HTTP keep-alive y determinar primero si esto es realmente algo que valga la pena.
Si es así, intente crear un Message Inspector. Esto debería permitirle modificar los encabezados HTTP para cada mensaje que se envía:
public class KeepAliveMessageInspector : IClientMessageInspector
{
// ...
public object BeforeSendRequest(
ref System.ServiceModel.Channels.Message request,
System.ServiceModel.IClientChannel channel)
{
// Add/modify the Keep-Alive header
var httpRequestMessage = new HttpRequestMessageProperty();
httpRequestMessage.Headers.Add("Keep-Alive", "9000");
request.Properties.Add(
HttpRequestMessageProperty.Name, httpRequestMessage);
return null;
}
// ...
}
Esta idea es interesante. Vi algo así en comunicación con Cassini, pero creo que no es un encabezado estándar. De todos modos lo intentaré durante los próximos días. Si funciona, estableceré la nueva recompensa y te premiaré. –
Por cierto. No necesito usarlo. Solo quiero saber si es posible cambiarlo de alguna manera y de dónde viene el valor predeterminado 100s. –
@Ladislav Mrnka: Perdón por esconder esta publicación anterior, pero ¿has podido establecer o leer este valor HTTP de mantener vivo?Si es así, estaría muy interesado en saber más al respecto. Gracias –
Encontré la solución para esto. El problema es que el kernel subyacente http.sys tiene su propio tiempo de espera y romperá la conexión.
http://mmmreddy.wordpress.com/2013/07/11/wcf-use-of-http-transport-sharing-persistent-tcp-sessions/
netsh http add timeout timeouttype=idleconnectiontimeout value=120
Además, esta pregunta es similar a este What 130 second timeout is killig my WCF streaming service call?
- 1. ¿Cómo hacer Flask/mantener la conexión HTTP Ajax con vida?
- 2. Cómo configurar log4net para WCF
- 3. Cómo configurar clientes para un servicio wcf?
- 4. ¿Cómo mantener la conexión de socket VOIP en segundo plano?
- 5. OpenID + recuérdame/mantener la conexión en
- 6. Cómo realizar la conexión de cliente de Java para el servicio WCF utilizando clientCredentialType = "Básico"
- 7. ¿Necesito el archivo svc para configurar Castle Wcf Facility para servicios que no son HTTP?
- 8. Cómo configurar un proxy HTTP para svn
- 9. Límites de conexión WCF
- 10. ¿Cómo activo la extensión PHP HTTP PECL en Windows?
- 11. Configurar WCF para escucha solo en LOCALHOST
- 12. Cómo configurar el tiempo de espera para la conexión de la base de datos en django
- 13. NSURLRequest configurar el encabezado HTTP
- 14. ¿Cómo configurar un solo servicio WCF para tener múltiples puntos finales HTTP y HTTPS?
- 15. Cómo configurar un cliente WCF usando wsDualHttpBinding en el código?
- 16. cómo configurar violinista WCF para monitorear las llamadas a un servicio de WCF alojados en IISExpress
- 17. ¿Cómo configurar la configuración para aceptar el token de autenticación en el encabezado HTTP?
- 18. libcurl - Mantener la conexión "abierta" para Cargar varios archivos (FTP)
- 19. ¿Cómo configurar correctamente la etiqueta http en Spring Security 3.1?
- 20. ¿Cómo puedo configurar mi IIS para mantener viva mi solicitud?
- 21. ¿Debo mantener abierta la conexión Sqlite?
- 22. cómo configurar el tiempo de espera de conexión/solicitud para el servidor de embarcadero?
- 23. cierre conexión WCF
- 24. ¿Cómo mantener un sitio de WCF en línea?
- 25. Reintentando una conexión HTTP
- 26. Cómo configurar WebSocket Conexión segura con PHP?
- 27. Cómo configurar el encabezado usando el método http post
- 28. PHP + SQL Server: cómo configurar el juego de caracteres para la conexión?
- 29. Mantener la conexión XMPP (usando asmack) activa en Android
- 30. Webpy: cómo configurar el código de estado http a 300
Gracias por puesto, pero esto no responde a la pregunta. La pregunta no es sobre apagar, mantener vivo, sino sobre establecer el tiempo de espera con vida. Así que quiero tener activado mantener activo y quiero controlar su duración. –
URL no encontrada, es una lástima – Kiquenet