Errores de conexión de Redis al usar el cliente Redis de Booksleeve en Azure VM

Recientemente empecé a hospedar un proyecto paralelo mío en las nuevas máquinas virtuales de Azure. La aplicación utiliza Redis como un caché en memoria. Todo funcionaba bien en mi entorno local, pero ahora que he movido el código a Azure, veo algunas extrañas excepciones provenientes de Booksleeve.

Cuando la aplicación se activa por primera vez, todo funciona bien. Sin embargo, después de unos 5-10 minutos de inactividad, la próxima solicitud a la aplicación experimenta una excepción de red (estoy en el trabajo en este momento y no tengo los mensajes de error exactos en mí, por lo que los publicaré cuando llegue a casa si la gente piensa que está relacionada con la discusión) Esto hace que se cierre el MessageQueue interno, lo que hace que cada Enqueue () posterior lance una excepción ("La cola está cerrada").

Así que después de un poco de google encontré este post SO:Mantener una conexión Redis abierta utilizando BookSleeve sobre un administrador de conexión de bricolaje. Ciertamente puedo implementar algo similar si ese es el mejor curso de acción.

Entonces, preguntas:

¿Es normal que RedisConnection se cierre periódicamente después de un cierto tiempo?He visto elconn.SetKeepAlive() Método, pero he probado muchos valores diferentes y ninguno parece hacer una diferencia. ¿Hay más de esto o estoy ladrando el árbol equivocado?¿Es la idea del administrador de conexión de la publicación anterior la mejor manera de manejar este escenario?¿Puede alguien arrojar alguna luz adicional sobre por qué el hecho de alojar mi instancia de Redis en una nueva máquina virtual de Azure causa este problema? También puedo confirmar que si ejecuto mi entorno local en la máquina virtual de Azure Redis, experimento este problema.

Como dije, si es inusual que una conexión Redis muera después de la inactividad, publicaré las huellas de la pila y las excepciones de mis registros cuando llegue a casa.

¡Gracias!

ACTUALIZAR Didier señaló en los comentarios que esto puede estar relacionado con el equilibrador de carga que utiliza Azure:http://blogs.msdn.com/b/avkashchauhan/archive/2011/11/12/windows-azure-load-balancer-timeout-details.aspx

Suponiendo que ese sea el caso, ¿cuál sería la mejor manera de implementar un administrador de conexión que podría explicar este problema tan tonto? Supongo que no debería crear una conexión por unidad de trabajo, ¿verdad?

Respuestas a la pregunta(2)

Su respuesta a la pregunta