6

我有一個在Azure上運行的ASP.NET MVC 3應用程序。它還使用SQL Azure作爲數據庫。管理MVC3 Azure應用程序的多個web.config文件

我想將此應用程序部署到不同的實例(測試,演示,多個製作),每個實例都需要它自己的唯一SQL數據庫。

我知道,使用新的Azure Tools更新,您可以管理多個服務配置。這很好,幾乎可以解決我的問題。唯一的問題是項目的MVC部分中的web.config文件中的SQL連接字符串。

我希望與多服務配置功能具有完全相同的功能,但要爲SQL連接字符串執行此功能。

感謝您的幫助!

回答

5

.Net configuration transformations應該做的工作。與Azure服務配置類似,將爲要部署到的每個實例創建單獨的Web.ConfigurationName.config文件。使用適當的配置(測試,演示等)構建解決方案將在Web.config中插入正確的「實例」配置值。

+0

這是我使用的方法,它工作得很好。 – 2012-03-09 07:31:03

+0

如何誠實地推薦在配置文件中編寫XLS轉換?配置文件已經足夠大了。 – 2015-03-12 22:16:10

3

我通常將我的SQL連接字符串保存在ServiceDefinition。*。cscfg文件中。這樣您就可以在運行的實例中編輯它們,這對於進行VIP交換非常有用。

如果你在開發機器模擬器外測試,這是相當簡單,在配置寫一個抽象:

class AzureConfig : IConfig 
{ 
    public string GetConnectionString(string name) 
    { 
    get 
    { 
     return RoleEnvironment.GetConfigurationSettingsValue(name); 
    } 
    } 
} 

class OnPremConfig : IConfig 
{ 
    public string GetConnectionString(string name) 
    { 
    get 
    { 
     return ConfigurationManager.ConnectionStrings[name].ConnectionString; 
    } 
    } 
} 

然後設置你的IoC容器檢查RoleEnvironment.IsAvailable和返回相關的類型。

相關問題