Umbraco7 Umbraco、Azure部署插槽和连接字符串

Umbraco7 Umbraco、Azure部署插槽和连接字符串,umbraco7,azure-web-app-service,azure-deployment-slots,Umbraco7,Azure Web App Service,Azure Deployment Slots,我们正在尝试利用Azures部署槽为我们已经建立的Umbraco站点提供支持 默认情况下,Umbraco使用web.config的ConnectionString部分中定义的DSN,我们希望它使用其所在的部署插槽的连接字符串 我们已经尝试过的 Azure部署槽将所有已定义的应用程序设置(和连接字符串)放入环境变量中,要访问这些设置,我们可以使用environment.GetEnvironmentVariable(),它可以工作,但似乎没有办法告诉Umbraco这样做 因此,在OnApplicat

我们正在尝试利用Azures部署槽为我们已经建立的Umbraco站点提供支持

默认情况下,Umbraco使用web.config的ConnectionString部分中定义的DSN,我们希望它使用其所在的部署插槽的连接字符串

我们已经尝试过的

Azure部署槽将所有已定义的应用程序设置(和连接字符串)放入环境变量中,要访问这些设置,我们可以使用
environment.GetEnvironmentVariable()
,它可以工作,但似乎没有办法告诉Umbraco这样做

因此,在OnApplicationInitialized()中(在/App_Code/Core/UmbracoAppStart.cs中),我们从web.config加载了connectionstring部分,从env vars获取了connstr,将DSN添加到connectionstring部分并保存。 抓取并存储正确的连接字符串,但这似乎会回收应用程序(由于web.config更改),因此我们只会超时。(或Umbraco XML缓存错误,或加载页面需要20分钟)

我知道您可以将appsettings和ConnectionString部分存储在单独的文件中。但是file属性(如果引用的文件发生更改,则不会导致循环)在connectionString部分不起作用-只有configSource属性,如果发生更改,则会循环

(发件人:)

帮助

有人找到办法解决这个问题吗? 我们只需要让Umbraco使用部署插槽连接字符串,而不是webconfig中的字符串


我甚至愿意在不了解其工作原理的情况下盲目复制和粘贴,我讨厌这样做:)。但是,当客户希望在圣诞节前上线时,当人们达成一致意见时,就会发生这种情况。

您无需编写任何代码即可使用Azure连接字符串或应用程序设置。只要给它们与web.config上相同的键/名称,它们就会被使用

因此,如果您的web配置中有以下内容:

<add name="umbracoDbDSN" connectionString="Server={server};Initial Catalog={db};Persist Security Info=False;User ID={user};Password={password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=300;" providerName="System.Data.SqlClient" />

要替换应用程序设置,请使用相同的键。为此:

<add key="umbracoUseSSL" value="false" />


如果您希望设置是特定于插槽的,则必须激活
插槽设置
复选框。

您不需要执行任何代码即可使用Azure连接字符串或应用程序设置。只要给它们与web.config上相同的键/名称,它们就会被使用

因此,如果您的web配置中有以下内容:

<add name="umbracoDbDSN" connectionString="Server={server};Initial Catalog={db};Persist Security Info=False;User ID={user};Password={password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=300;" providerName="System.Data.SqlClient" />

要替换应用程序设置,请使用相同的键。为此:

<add key="umbracoUseSSL" value="false" />


如果您希望设置为特定于插槽的设置,您必须激活
插槽设置
复选框。

哇,我现在觉得很愚蠢。我必须承认,我从未尝试过使用相同的名称将connstr添加到azure。。。我还是不敢相信,在过去几天的谷歌搜索中,我还没有发现这一点。不过还是行的,非常感谢马里奥:)哈,没问题。当你知道的时候,一切都很容易。哇,我现在觉得自己很愚蠢。我必须承认,我从未尝试过使用相同的名称将connstr添加到azure。。。我还是不敢相信,在过去几天的谷歌搜索中,我还没有发现这一点。不过还是行的,非常感谢马里奥:)哈,没问题。只要你知道,一切都很容易。