2013-10-06 24 views
1

我有一個運行Windows Azure的站點,我通過鏈接的資源連接了數據庫,看起來網站應該使用數據庫。我還在我的web.config文件中包含了正確的連接字符串。Azure網站只有在遠程數據庫本地運行時纔有效

當我在本地運行網站併爲默認連接使用azure數據庫的連接字符串時,一切正常,我已經看到從本地機器更新數據反映在遠程數據庫中。

每當我嘗試訪問任何創建數據庫命中的頁面(即登錄或查看基本索引(從腳手架視圖)),我得到一個500錯誤。我試圖打開自定義錯誤,但500錯誤是我得到的。我試圖從我的本地機器調試它,但根本沒有任何幫助,因爲當本地運行站點並連接到天藍色數據庫時,所有工作都正常。

我也拉下了web.config文件和web.configs兩邊是相同的。

我認爲這與配置問題有關,但我不確定是什麼。

是否有什麼我不得不做的與asp.net mvc 5使它與Windows Azure的工作?它看起來像.net框架在Azure上正確設置爲.net 4.5。我猜測它與Azure不知道它應該使用web.config中提供的數據庫有關。

這裏是web.config中的連接字符串:

<add name="DefaultConnection" connectionString="Data Source=####.database.windows.net,1433;Initial Catalog=####_db;Persist Security Info=True;User ID=####;Password=####" providerName="System.Data.SqlClient" /> 
<add name="DefaultConnectionDeploy" connectionString="Data Source=####.database.windows.net;Initial Catalog=####_db;Persist Security Info=True;User ID=####;Password=####" providerName="System.Data.SqlClient" /> 
<add name="DefaultConnection_DatabasePublish" connectionString="Data Source=####.database.windows.net,1433;Initial Catalog=####_db;Persist Security Info=True;User ID=####;Password=####" providerName="System.Data.SqlClient" /> 
+0

你能提供什麼不工作的細節嗎?只是說「不工作」是沒有足夠的信息來提出建議 – Igorek

+0

我的歉意。無論何時我嘗試訪問任何創建數據庫命中的頁面(即登錄或查看基本索引(從腳手架視圖)),我都會遇到500錯誤。我試圖打開自定義錯誤,但500錯誤是我得到的。我試圖從我的本地機器調試它,但根本沒有任何幫助,因爲當本地運行站點並連接到天藍色數據庫時,所有工作都正常。 – jyanks

+0

請還包括數據庫類型(Azure SQL數據庫與MySQL等),以及您是在Windows Azure網站上運行還是在Cloud Service中運行Web角色。 – MikeWo

回答

0

根據安德魯計數的建議,我去檢查了我的EF遷移(在使用「從服務器替換web.config」選項拉下Azure web.config文件之後,以便我確切地複製了服務器正在使用。然後我啓用了自定義錯誤。事實證明,頁面加載失敗的原因是表dbo.AspNetRoles已存在的錯誤。

它似乎好像試圖運行EF儘管事實上表已經存在,爲了彌補這一點,我決定去擦掉當前的數據庫(我今天剛安裝好數據庫,這樣做沒什麼壞處),然後從Visual Studio的包控制檯中運行在將任何內容部署到服務器之前的更新數據庫腳本t,它正確添加了dbo .__ MigrationHistory表內的記錄。然後,我檢查了我的更改,以便連接到我的解決方案的visualstudio.com構建將構建並部署到Azure。問題依然存在,但我意識到我需要禁用我正在使用的自動構建+部署,而是使用右鍵點擊+發佈,因爲從Visual Studio構建它不能正確連接到Azure數據庫(它沒有改變web.config)。當我在Visual Studio中使用發佈時,該網站就像一個魅力。

謝謝你的全力幫助

0

Windows Azure中利用變換來管理連接字符串。連接字符串在運行時合併,並且可以通過Web站點管理頁面上的配置選項卡進行控制。無論何時將Azure數據庫設置爲鏈接資源,它都會自動配置具有防火牆規則的Azure數據庫服務器,以允許來自Web服務器的連接,並添加連接字符串。通過使用此連接字符串,將其命名爲與開發中使用的字符串相同,則不需要在部署之前修改任何代碼。如果您沒有將Azure數據庫設置爲鏈接資源,則需要手動修改防火牆規則,這與Azure網站的可伸縮性無法很好地配合,因此不推薦使用。

+0

我剛剛鏈接了我的網站的網頁配置。正常的web.config查看visual studio爲我創建的mdf文件。它看起來像天青網站中的連接字符串是有效/正確的,所以這不是問題。 – jyanks

+0

您是否知道使用MVC 5/EF 6 RC/Microsoft.AspNet.Identity RC是否會引起任何問題? – jyanks

+1

您是否在您的網站上使用EF遷移?服務器數據庫中是否存在所有的表? – Claies

相關問題