2015-09-08 55 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啓動,並且不允許在啓動期間創建數據庫上下文。我懷疑我們可以做後者。

相關問題