2013-08-26 23 views
2

我有一個在Azure上部署的ASP.NET MVC4解決方案。該解決方案連接到SQL數據庫。如何在本地執行和雲執行時使用不同的數據庫

我想知道是否可以配置的解決方案,這樣,當我在我的本地機器上運行(即同時深化發展/調試運行),它採用了本地數據庫,當它在雲中的run(即在Azure上)它使用雲數據庫

我知道存儲帳戶(blob,queue)連接字符串可以進行這種配置,但到目前爲止,我還沒有找到數據庫連接字符串的任何等價物。

感謝任何願意幫助我的人。

回答

2

你只需要配置你的web.config文件來設置正確的連接字符串。對於本地數據庫,你只需要像這樣:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=mydb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\mydbmdf" providerName="System.Data.SqlClient" /> 

然後添加在那裏你會使用轉換語句來更改連接字符串,像這樣的web.Release.config文件。

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=xxx.database.windows.net,1433;Initial Catalog=xxx;User [email protected];Password=xxx;" providerName="System.Data.SqlClient" xdt:Transform="Replace"/> 
</connectionStrings> 

你就完成了。

+0

,這正是我需要的。非常感謝! –

0

如果您使用的是PaaS雲服務,您可以指定單獨的cscfg文件(local,dev,prod)。當您通過模擬器在本地運行時,您將使用「本地」版本。然後,當您部署到雲時,您可以使用不同的版本。

如果我們在談論網站或IaaS,我見過的最常用的方法是有一種方法來檢測您正在運行的環境(本地或託管)。通常基於機器名稱(不常見)或請求URI(相當常見)。然後在你的代碼中,你使用適合你所運行環境的連接字符串配置設置。

+0

感謝您的幫助。 * .cscfg文件是我們用來提供與存儲帳戶相關的不同設置,但我找不到一種方法來使用它們來解決我的問題。 @Whirly的解決方案(在web.Release.config/web.Debug.config中的轉換屬性)就像一個魅力 –

相關問題