如何在本地和云执行之间使用不同的数据库

本文关键字:数据库 之间 执行 | 更新日期: 2023-09-27 18:29:00

我有一个在Azure上部署的ASP.NET MVC4解决方案。此解决方案连接到SQL数据库。

我想知道该解决方案是否可以配置为,当我在本地计算机上运行它时(即在开发/调试时),它使用本地数据库,而当它在云中运行时(即Azure上),它则使用云数据库

我知道存储帐户(blob,queue)连接字符串可以进行这种配置,但到目前为止,我还找不到任何与数据库连接字符串等效的配置。

感谢任何愿意帮助我的人。

如何在本地和云执行之间使用不同的数据库

您只需配置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 Id=xxx@xxx;Password=xxx;" providerName="System.Data.SqlClient" xdt:Transform="Replace"/>
 </connectionStrings>

你就完了。

如果您使用PaaS云服务,您可以指定单独的cscfg文件(local、dev、prod)。当您通过模拟器在本地运行时,您将使用"本地"版本。然后,当您部署到云时,您可以使用不同的版本。

如果我们谈论的是网站,或IaaS,我见过的最常见的方法是有一种方法来检测你在哪个环境(本地或托管)中运行。通常基于机器名称(不太常见)或请求URI(相当常见)。然后在您的代码中,您可以为运行的环境使用适当的连接字符串配置设置。