我正在发布Azure Web App,我遇到了一个执行代码首次迁移的奇怪问题。
如果我不选中“执行代码优先迁移”,则此数据库的远程连接字符串工作正常。
但是,如果我选中该框,一个带有好奇拼写错误的奇怪连接字符串“ConnetionString”将被注入远程web.config:
<add name="DbContext_DatabasePublish" connectionString="DbContext_DatabasePublish.ConnetionString" providerName="System.Data.SqlClient" />
当然,这不是有效的连接字符串,EF初始化程序会抛出此异常
初始化字符串的格式不符合规范 从索引0开始
无论本地连接字符串是否引用localdb,或者根本没有在本地web.config中定义连接字符串,发布行为也是相同的。
我错过了一些明显的东西吗?
答案 0 :(得分:1)
在Azure中,我最终必须为DbContext
和DbContext_DatabasePublish
定义连接字符串,以便执行迁移。 MSDN post和this answer最终导致我得出这个结论。
我不知道为什么我没有看到更多关于这个问题的引用。这似乎是一个普遍的问题。