我们正在尝试将 Azures 部署槽用于我们构建的 Umbraco 站点。
默认情况下,Umbraco 使用在 web.config 的connectionStrings部分中定义的 DSN,我们希望它使用它所在的部署槽的连接字符串。
我们尝试过的
Azure 部署槽将所有已定义的应用程序设置(和连接字符串)放入环境变量中并访问它们,我们可以使用Environment.GetEnvironmentVariable()
哪个有效,但似乎没有办法告诉 Umbraco 这样做。
因此,在 OnApplicationInitialized()(在 /App_Code/Core/UmbracoAppStart.cs 中)中,我们从 web.config 加载了连接字符串部分,从 env vars 中获取了 connstr,将 DSN 添加到连接字符串部分并保存。正确的连接字符串被抓取并存储,但这似乎回收了应用程序(由于 web.config 更改),因此我们只是得到超时。(或者 Umbraco XML 缓存错误,或者加载页面需要 20 分钟)。
我知道您可以将 appsettings 和 connectionstrings 部分存储在单独的文件中。但是文件属性(如果引用的文件被更改,不会导致回收)在 connectionStrings 部分不起作用 - 只有configSource属性并且如果更改会回收。
(来自:ASP.NET web.config:configSource 与文件属性)
帮助
有没有人找到解决这个问题的方法? 我们只需要让 Umbraco 使用部署槽连接字符串——而不是 webconfig 中的那个。
我什至愿意在不了解它是如何工作的情况下盲目地复制和粘贴——我讨厌这样做:)。但这就是当人们同意客户想要在圣诞节前上线时发生的情况......