2013-10-16 213 views
1

我正在這個工作一段時間,我不知道該怎麼辦..所以這裏是問題所在。Windows Azure Web服務,無法連接到SQL數據庫

我有一個Azure Web服務,它完美的本地化。它應該連接到SQL Azure的數據庫(我用的是同一個的ConnectionString用於調試和蔚藍的..所以它應該是正確的)

使用智能跟蹤,我發現這些錯誤:

Requested registry access is not allowed. 
System.IO.FileNotFoundException Could not load file or assembly 'EntityFramework, Version=6.0.0.0, Culture=Neutral.... 
System.Data.Entity.Core.ProviderIncompatibleException 
System.Data.SqlClient.SqlException A network-related or instance-specific error occured while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct... (This about 50 times) 
System.Threading.WaitHandleCannotBeOpenedException    No handle of the given name exists. 
System.Security.SecurityException   Requested registry access is not allowed 
Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironmentException  error 
System.Threading.WaitHandleCannotBeOpenedException   No handle of the given name exists. 

(異常堆棧,頂部最新的,最古老的博特)

在我的web.config我安裝EF和的ConnectionString這樣的:

<configSections> 
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
<section name="EntityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework" requirePermission="false"/> 
</configSections> 
<connectionStrings> 
    <add name="DefaultConnection" connectionString="Server=SERVER.database.windows.net;Database=LeagueMetaDatabase;User [email protected];Password=PW;Trusted_Connection=False;Encrypt=True;" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

我也停用「特定版本」爲EF組裝和ACTI vated「複製本地」。 我檢查服務器上的服務的bin文件夾,該DLL在那裏。

該服務使用了大量的異步的,但是前面已經說了它的工作原理localy ..我也安裝了.NET 4.5.1在服務器上只是要確定是不是問題

//編輯 第一總之,感謝所有幫助到目前爲止!

我試着縮小了這個問題的範圍。重建洞項目並試圖找到什麼不起作用。似乎異步任務無法讀取Azure服務器雲上的Web.config中的ConnectionString。在模擬器中,它工作。我將ConnectionString硬編碼到上下文中,並以此方式工作。

任何人都可以告訴我是什麼造成了這種行爲,以及如何將其重新放入Web.config中?

+0

您如何部署到Azure?如果您使用VS中的「發佈」方法,那麼您可能會檢查是否設置了正確的連接字符串 - 我記得Visual Studio將連接字符串從開發替換爲生產,您可以檢查它。另外我不建議使用Azure上不穩定的任何東西 - 我也遇到過很多問題(並且我看到您正在使用EF 6)。 – VsMaX

+0

web.config中的標記有什麼?它參考哪個EF? – sunil

+0

我的服務的web.config中沒有運行時標籤 –

回答

0

首先,感謝所有迄今爲止的幫助!

我試着縮小了這個問題的範圍。重建洞項目並試圖找到什麼不起作用。 似乎異步任務無法讀取Azure服務器雲上的Web.config中的ConnectionString。在模擬器中,它工作。我將ConnectionString硬編碼到上下文中,並以此方式工作。

任何人都可以告訴我是什麼造成了這種行爲,以及如何將其重新放入Web.config中?

0

數據中心是否在同一數據中心使用數據庫&?如果沒有,請通過Azure控制面板鏈接您的資源和/或確保您已在「DB配置」部分中啓用了「允許Azure服務連接」。

此外,請確保您的SERVER連接指定「tcp」 - Windows Azure SQL數據庫服務僅適用於TCP端口1433.要從您的計算機訪問SQL數據庫數據庫,請確保您的防火牆允許TCP上的傳出TCP通信港口1433(從Guidelines for Connecting to Windows Azure SQL Database)。如果您從數據庫儀表板頁面抓取ADO連接字符串,您應該看到:

Server=tcp:{your_servername}.database.windows.net,1433;Database={your_database_name};User ID={your_userid};Password={your_password_here};Trusted_Connection=False;Encrypt=True;Connection Timeout=30; 
+0

是的,他們是在同一個中心!鏈接em只會將em鏈接到儀表板..它不會改變其他任何東西! –

+0

更新了故障排除鏈接和TCP澄清 – viperguynaz

+0

@AlexejHaak我以爲「它不會改變任何東西!」 - 但我和你一樣,是錯的。如果您轉到Web服務的配置選項卡,您將看到數據庫和服務器的連接信息(我目前只設置了移動服務 - 但我確實遇到了您所描述的問題)。我發現這些值確實需要正確設置(通過鏈接資源)以使我的數據庫連接正常工作。這對我來說也是一個驚喜。這些值似乎被自動轉換成你的配置文件... – dav1dsm1th

2

您的解決方案如何部署到Azure?您是否在使用Cloud Service或網站?如果您運行的是Azure網站,則問題可能與web.config和您的Azure網站中的連接字符串名稱相同。如果是這種情況,您可能需要嘗試重命名爲您的網站Azure管理門戶中定義的連接字符串。這可以通過配置管理頁面完成。

希望這會有所幫助。

相關問題