对于托管在Azure中且具有链接资源的web项目,如何处理web.config中的连接字符串

对于托管在Azure中且具有链接资源的web项目,如何处理web.config中的连接字符串,azure,ado.net,azure-sql-database,azure-web-app-service,Azure,Ado.net,Azure Sql Database,Azure Web App Service,我在理解如何处理我的网站中的连接字符串时遇到了一些困难。该网站位于Azure中。Azure中的Web应用程序也有一个链接到Azure中DB的资源。现在一切都很好,一切都很好。。。但是,当我需要将我的网站部署到我的生产站点时,该怎么办?在开发过程中,我在Azure中使用开发人员网站和开发人员数据库。因此,我的connectionstring对于每个环境的命名也不同。连接字符串的名称是dbname_dev。这是链接资源的名称,所以我猜这也是连接字符串的名称。 因此,我可以添加一个带有该名称的空连接字

我在理解如何处理我的网站中的连接字符串时遇到了一些困难。该网站位于Azure中。Azure中的Web应用程序也有一个链接到Azure中DB的资源。现在一切都很好,一切都很好。。。但是,当我需要将我的网站部署到我的生产站点时,该怎么办?在开发过程中,我在Azure中使用开发人员网站和开发人员数据库。因此,我的connectionstring对于每个环境的命名也不同。连接字符串的名称是dbname_dev。这是链接资源的名称,所以我猜这也是连接字符串的名称。 因此,我可以添加一个带有该名称的空连接字符串,然后使用

connString = 
Environment.GetEnvironmentVariable("PREFIX_myConnStringName");
去检索连接字符串,Azure将确保在运行时替换i

但是当站点需要移动到生产站点和db时会发生什么呢?然后数据库的名称不同,链接资源的名称也不同。然后我会遇到麻烦,因为我上面的代码仍然有我在开发环境中使用的链接资源的名称


我希望我说清楚:)我知道这有点难理解:)

您可以从门户中应用程序的设置部分设置连接字符串,而不是在web.config中命名连接字符串。这些设置将保留在同一插槽中

这样,当您交换dev和production插槽时,prod插槽将获得新的位,但将保留旧的(prod)连接字符串设置


您可以在此处找到更多详细信息:

我刚刚意识到,在Azure的预览门户中,我可以重命名连接字符串。所以我想我可以确保在我的生产和开发web应用程序中命名相同的连接字符串,尽管它们有不同的数据源。。。但这真的是“官方”的方式吗?