Umbraco7 Umbraco、Azure部署插槽和连接字符串
我们正在尝试利用Azures部署槽为我们已经建立的Umbraco站点提供支持 默认情况下,Umbraco使用web.config的ConnectionString部分中定义的DSN,我们希望它使用其所在的部署插槽的连接字符串 我们已经尝试过的 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
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。。。我还是不敢相信,在过去几天的谷歌搜索中,我还没有发现这一点。不过还是行的,非常感谢马里奥:)哈,没问题。只要你知道,一切都很容易。