use*_*129 6 c# enterprise-library azure
我使用此代码从Enterprise Library初始化RetryManager:
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.WindowsAzure.TransientFaultHandling;
using Microsoft.Practices.EnterpriseLibrary.WindowsAzure.TransientFaultHandling.SqlAzure;
using Microsoft.Practices.TransientFaultHandling;
...
var manager = EnterpriseLibraryContainer.Current.GetInstance<RetryManager>();
return manager.GetDefaultSqlConnectionRetryPolicy();
Run Code Online (Sandbox Code Playgroud)
现在我将Enterprise Library NuGet包更新到最新版本,并且不再有EnterpriseLibraryContainer.
如何使用新的企业管理器初始化RetryManager?它必须是线程安全的,因为我的代码在Web服务器上执行.
我是这样解决的:
删除所有旧的 NuGet 包并仅安装这两个包:
<package id="EnterpriseLibrary.TransientFaultHandling" version="6.0.1304.0" targetFramework="net45" />
<package id="EnterpriseLibrary.TransientFaultHandling.Data" version="6.0.1304.0" targetFramework="net45" />
Run Code Online (Sandbox Code Playgroud)
在应用程序中添加此代码一次:
var strategy = new FixedInterval("fixed", 10, TimeSpan.FromSeconds(3));
var strategies = new List<RetryStrategy> {strategy};
var manager = new RetryManager(strategies, "fixed");
RetryManager.SetDefault(manager);
Run Code Online (Sandbox Code Playgroud)
然后使用微软的新连接类:
using (var connection = new ReliableSqlConnection(ConnectionString))
{
connection.Open();
...
command.ExecuteNonQueryWithRetry();
}
Run Code Online (Sandbox Code Playgroud)
我还从 Web.Config 中删除了所有配置,因为它现在在我的代码中。
| 归档时间: |
|
| 查看次数: |
4099 次 |
| 最近记录: |