我最近开始举办的新Azure的虚拟机我的一个辅助项目。 该应用程序使用Redis的作为内存缓存。 一切都工作正常,在我的本地环境,但现在我已经搬到代码天青我看到一些奇怪的例外出来Booksleeve的。
当应用程序第一次激发了一切工作正常。 然而,约5-10分钟不活动后的应用程序的下一个请求都会经历网络异常(我的工作是正确的,现在不要对我确切的错误信息,所以我会张贴当我回家,如果人们认为他们是密切相关的讨论),这将导致内部的MessageQueue关闭,这将导致每个后续排队()抛出异常(“队列为关闭”)。
因此,一些谷歌搜索后,我发现这个职位的SO: 维护使用BookSleeve一个开放的Redis连接关于DIY连接管理器。 我当然可以实现类似的东西,如果这是最好的行动过程。
所以,问题:
- 这是正常的RedisConnection到一定量的时间后定期关闭?
- 我见过的
conn.SetKeepAlive()
方法,但我已经尝试过许多不同的价值观和没有似乎有所作为。 是否有更多的这还是我找错了树? - 为处理这种情况的最好办法支柱上方的连接管理器的想法?
- 任何人都可以阐明为什么在新Azure的VM主机我Redis的情况下会导致此问题的任何额外的光? 我也可以肯定,如果我跑我对Azure的Redis的VM本地environement我遇到此问题。
就像我说的,如果它是不寻常的Redis的连接不活动后死去,我将张贴堆栈跟踪和异常从我的日志,当我回家。
谢谢!
UPDATE迪迪埃在评论中指出,该Azure的使用这可能与负载balanacer: http://blogs.msdn.com/b/avkashchauhan/archive/2011/11/12/windows-azure-load-balancer-超时details.aspx
假如是这样的话,这将是实现一个连接管理器,可以解释为这个愚蠢的问题的最好办法。 我想我不应该创建每个工作权单位有关联吗?