如何在NHibernate中添加重试逻辑以处理SQL Azure中的暂时故障?

如何在NHibernate中添加重试逻辑以处理SQL Azure中的暂时故障?,nhibernate,azure,azure-sql-database,Nhibernate,Azure,Azure Sql Database,我们有一个在WindowsAzure上运行的.NET应用程序,它使用NHibernate连接到SQLAzure数据库。有时,有必要添加重试逻辑来处理SQLAzure中的瞬时故障,例如这里所述- 有人能给我指点一个办法让我和NHibernate一起做这件事吗?理想情况下,我希望在NHibernate级别执行此操作,而不是包装每个调用;正如我在这里概述的那样,我能够为另一个ORM、.netTiers()完成这项工作- 我搜索并找到了一些答案,其中提到使用IDbCommand接口的自定义实现-

我们有一个在WindowsAzure上运行的.NET应用程序,它使用NHibernate连接到SQLAzure数据库。有时,有必要添加重试逻辑来处理SQLAzure中的瞬时故障,例如这里所述-

有人能给我指点一个办法让我和NHibernate一起做这件事吗?理想情况下,我希望在NHibernate级别执行此操作,而不是包装每个调用;正如我在这里概述的那样,我能够为另一个ORM、.netTiers()完成这项工作-

我搜索并找到了一些答案,其中提到使用IDbCommand接口的自定义实现-

但我不确定这是否适用于NHibernate 3.2,我正在寻找一个可以修改的清晰示例


如何自动对SQL Azure进行NHibernate重试调用?假设重试3次,每次间隔100毫秒-在重试3次后,如果仍然失败,我们应该抛出异常。

也许这可以帮助您: . 这里有一个类,您可以下载并使用它,带有一些覆盖

也请检查此链接:

我希望这对我有帮助,我也经历过类似的情况


这不是一个完整的运行示例,但是您需要的文件在这里


我发布了一个库来处理以下问题: