发布时将连接字符串从开发更改为生产
本文关键字:开发 布时 连接 字符串 | 更新日期: 2023-09-27 18:11:18
我想知道如何自动改变我的应用程序的连接字符串,所以当我在我的pc上工作时,它使用我的本地SQL Server,一旦我发布它,然后使用SQL Server我托管在azure上。
现在我只是根据我想要的注释出连接字符串,我看到Web。配置文件有2个依赖项,Web.Debug.config和Web.Release.config,这是我想我必须做的事情,但我不知道是什么。
这是我的网。当前配置文件<connectionStrings>
<add name="MyApp" connectionString="Data Source=mydb.database.windows.net;Initial Catalog=MyDb;User ID=MyUser@mydb.database.windows.net;Password=MyPwd;Encrypt=true;Trusted_Connection=false;" providerName="System.Data.SqlClient" />
<!--<add name="MyApp" providerName="System.Data.SqlClient" connectionString="Server=.'SQLEXPRESS;Database=MyDb;Integrated Security=True;" />-->
</connectionStrings
正如你所看到的,我有两个连接字符串,我已经注释掉了,但这样做真的很烦人。
这两个配置是为各自的构建设置而构建的,因此您可以将开发连接字符串放在Web.Debug.config
中,而将prod连接字符串放在Web.Release.config
中。然后,当您部署到生产环境时,运行Release构建和生成的Web。
你可以拆分你的网页。配置
- web.dev.config
- web.live.config
在部署时选择适当的配置文件。您可以访问此链接了解如何管理多个web。
或
如果你不想创建多个web。配置文件参考单个web。从codeproject
您现在可以使用Azure通过应用程序设置中的连接字符串来处理此问题。您只需要将连接命名为完全相同,然后它就会即插即用。
https://learn.microsoft.com/en-us/azure/app-service-web/web-sites-configure我决定绕过整个网络。配置并集成一个函数,该函数根据它正在运行的当前机器确定连接字符串。要设置这一点,我必须设置我的ApplicationDbContext()从函数中收集连接字符串,如下所示:
public ApplicationDbContext() : base(CFFunctions.GetCFConnection())
{
}
注意我的函数是Static:
public static string GetCFConnection()
{
string Connection = "";
string Machine = System.Environment.MachineName.ToLower();
switch(Machine)
{
case "development":
Connection = @"Data Source=DEV_SRV;Initial Catalog=CeaseFire;Integrated Security=True";
break;
case "production":
Connection = @"Data Source=PRO_SRV;Initial Catalog=CeaseFire;Integrated Security=True";
break;
}
return Connection;
}