2015-09-08 26 views
0

我有一个webapp部署到Azure Web App。在web应用程序中,我使用了MembershipReboot和Entity Framework。 Sql Server数据库也在Azure中。在Azure门户中设置的连接字符串未被应用程序拾起

它通过BitBucket集成和持续部署在临时插槽中进行部署。

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

我在Azure门户中设置了名为MembershipReboot的连接字符串。如果我更改连接字符串在web.config,是SQL Azure的连接字符串的应用程序加载罚款

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

当我浏览到该应用程序,我得到这个错误。如果我将它设置回“dummy”,那么我会得到上述错误。

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

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

关于接下来看什么的任何想法?

编辑:只是说,正确的连接字符串可以在Kudu内查看。

+0

您为什么认为该错误表明“Azure门户中设置的连接字符串未被应用程序拾取”? –

+0

当我更改web.config中的连接字符串时,应该是正确的连接字符串。当它被设置为“虚拟”时,它不起作用。 Azure门户中已经设置了正确的连接字符串。因此我得出结论,应用程序没有从门户中选择连接字符串。看到我的答案,看看我们如何解决它。 – nachojammers

回答

0

管理解决这个问题。

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

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

相关问题