2012-06-08 61 views
2

關於ASP.NET Universal Providers(System.Web.Providers),它們是否會在與SQL Azure一起使用時自動提供重試邏輯?例如,在我的代碼我呼籲:ASP.NET通用提供程序 - 它們是否自動提供SQL Azure重試邏輯?

Membership.CreateUser 

如果失敗了,因爲Azure的瞬時錯誤的,並在庫自動處理的情況,重試操作?或者我應該手動處理異常並重試?

following question implies答覆邏輯是內置的,但有沒有一個地方可以證實這一點,就像這些提供程序的某個主頁或源代碼?

回答

2

我沒有看到任何地方它失敗後再次重試。 DefaultMembershipProvider使用簡單的實體框架AddObject,除非實現CustomMembershipProvider。

internal static User CreateUser(MembershipEntities ctx, Guid id, 
    string userName, Guid appId, bool isAnon) 
{ 
    User user = new User(); 
    user.UserId = id; 
    user.ApplicationId = appId; 
    user.LastActivityDate = DateTime.UtcNow; 
    user.UserName = userName; 
    user.IsAnonymous = isAnon; 
    ctx.Users.AddObject(user); 
    User user1 = user; 
    return user1; 
} 
+0

那麼,真正的'支持'Azure SQL數據庫到底如何呢?我成功地使用了針對SQL數據庫的舊提供程序18個月,除了缺少重試邏輯以外沒有任何問題。我在6個月前遷移到了新的通用提供者,因爲我假定它已經嘗試了Azure的邏輯。現在我很困惑,爲什麼我使用它。 – BrettRobi

+0

@BrettRobi支持SQL Azure和重試邏輯是兩個不同的問題。通用提供程序支持SQL Azure,這是傳統的成員資格提供程序失敗的方式。我同意默認包含重試邏輯。但是,如果我們想要重試邏輯,我們可能需要按功能請求表單進行詢問。 – Win

+0

我不同意。舊的提供商在您的條款中「支持」SQL Azure。如果沒有重試邏輯,新版本對我沒有任何好處。 SQL Azure「大幅」(使用Azure短語)SQL Server,對重試邏輯的需求是兩者之間的核心區別。無論如何,感謝您的評論。 – BrettRobi

相關問題