【问题标题】:Connection strings set in Azure portal not being picked up by applicationAzure 门户中设置的连接字符串未被应用程序拾取
【发布时间】:2015-09-08 08:39:52
【问题描述】:

我有一个 webapp 部署到 Azure Web App。在 webapp 中,我使用 MembershipReboot 和实体框架。 Sql Server 数据库也在 Azure 中。

它通过 BitBucket 集成和持续部署部署在一个暂存槽中。

作为构建过程的一部分,web.config 转换将连接字符串值更改为“dummy”。

我在 Azure 门户中设置了名为 MembershipReboot 的连接字符串。

当我浏览到应用程序时,我收到此错误:

Format of the initialization string does not conform to specification starting at index 0.

如果我将 web.config 中的连接字符串更改为 Sql Azure 连接字符串,则应用程序加载正常。如果我将其设置回“虚拟”,则会出现上述错误。

这表明在 Azure 门户中设置的连接字符串没有被应用程序拾取。

我使用 ARM 模板部署创建了这个 Azure 环境,并混合了一些 Azure powershell 命令。我也尝试过手动创建环境,但遇到了同样的问题。

对接下来要看什么有什么想法吗?

编辑:只是说,正确的连接字符串在 Kudu 中是可见的。

【问题讨论】:

  • 为什么您认为该错误表明“应用程序未拾取 Azure 门户中设置的连接字符串”?
  • 当我将 web.config 中的连接字符串更改为正确的连接字符串时,应用程序正常工作。当它设置为“虚拟”时,它不起作用。 Azure 门户中已设置正确的连接字符串。因此,我得出结论,该应用程序没有从门户中选择连接字符串。请参阅下面的答案,看看我们是如何修复它的。

标签: azure azure-web-app-service membershipreboot


【解决方案1】:

设法解决了这个问题。

这是由于在环境提供正确的连接字符串之前调用了 StructureMap 并创建了数据库上下文(通过 global.asax)。

在我们的例子中,应用程序混合了 Owin 启动和 global.asax Application_Start,我们必须将 global.asax 启动移动到 Owin 启动中,并且不允许在该启动期间创建数据库上下文。我怀疑我们可以只做后者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 2022-06-15
    • 2018-10-28
    • 1970-01-01
    • 2018-08-15
    相关资源
    最近更新 更多