我有一个部署在 Azure 上的 ASP.NET MVC4 解决方案。此解决方案连接到 SQL 数据库。
我想知道是否可以配置解决方案,以便当我在本地机器上运行它时(即在开发/调试时)它使用本地数据库,当它在云中运行时(即在 Azure 上)它使用云数据库。
我知道这种配置对于存储帐户(blob、队列)连接字符串是可能的,但到目前为止我还没有找到数据库连接字符串的任何等效项。
感谢任何愿意帮助我的人。
我有一个部署在 Azure 上的 ASP.NET MVC4 解决方案。此解决方案连接到 SQL 数据库。
我想知道是否可以配置解决方案,以便当我在本地机器上运行它时(即在开发/调试时)它使用本地数据库,当它在云中运行时(即在 Azure 上)它使用云数据库。
我知道这种配置对于存储帐户(blob、队列)连接字符串是可能的,但到目前为止我还没有找到数据库连接字符串的任何等效项。
感谢任何愿意帮助我的人。
您只需配置 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 文件(本地、开发、产品)。当您通过模拟器在本地运行时,您将使用“本地”版本。然后,当您部署到云时,您可以使用不同的版本。
如果我们谈论的是网站或 IaaS,我见过的最常用的方法是有一种方法来检测您正在运行的环境(本地或托管)。通常基于机器名称(不太常见) ) 或请求 URI(相当常见)。然后在您的代码中,您使用适合您正在运行的环境的连接字符串配置设置。