发布时将连接字符串从开发更改为生产
我想知道如何自动更改我的应用程序的连接字符串,所以当我在我的电脑上工作时,它使用我的本地SQL Server,一旦我发布它然后使用我在Azure上托管的SQL Server。
现在我只是根据我的需要评论连接字符串,我看到Web.Config文件有2个依赖项,Web.Debug.config和Web.Release.config这是我想我必须要做的事情但我不知道是什么。
到目前为止,这是我的web.config文件
<!----> </connectionStrings
正如你所看到的,我有2个连接字符串,我已经注释掉但这样做真的很烦人。
这两个配置是为它们各自的构建设置构建的,因此您可以将您的dev连接字符串放在Web.Debug.config
,将您的prod连接字符串放在Web.Release.config
。 然后,在部署到生产环境时,运行Release版本,生成的Web.Config将具有生产连接字符串。
你可以拆分web.config之类的
- web.dev.config
- web.live.config
在部署时选择适当的配置文件。 您可以访问此链接以了解如何在单个项目中管理多个web.config文件。
要么
如果您不想创建多个web.config文件,请参阅codeproject的所有环境(dev,test,prod)中的单个web.config文件
您现在可以使用Azure通过应用程序设置中的连接字符串来处理这个确切的问题。 您只需要将连接命名为完全相同,然后即可即插即用。
https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-configure
我决定绕过整个web.config,而是集成一个函数,该函数根据运行的当前机器确定连接字符串。 要设置它,我必须设置我的ApplicationDbContext()来从函数中收集连接字符串,如下所示:
public ApplicationDbContext() : base(CFFunctions.GetCFConnection()) { }
请注意我的function是静态的 :
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; }
- unit testing带有伪HTTPContext的ASP.NET Web API控制器
- 在xml文件中搜索数据的最佳方法?
- 你能阻止你的ASP.NET应用程序关闭吗?
- 更改entity framework中的命名空间
- 在asp.net 3.5中使用RegisterClientScriptBlock / RegisterStartupScript
- ASP.NET Core 2 – 身份 – 自定义角色的DI错误
- ModelValidationException是未处理的用户代码
- 将global.asax迁移到ASP.NET 5
- Page_ClientValidate()对象预期错误,无法找到validation器