2012-07-04 70 views
1

我使用愉快地託管在Azure和3天前交談,SQL Azure數據庫實體框架有一個MVC 3應用程序連接。然後我做了一個小的架構更改到數據庫中,因此刪除並重新創建通過SSMS的數據庫,並再次發佈的應用程序,因爲我已經添加了默認MVC應用程序登錄角色控制的網站 - 從那時起,我不能讓我的應用程序連接到數據庫並獲取Elmah xml文件中記錄的以下錯誤:MVC應用程序無法連接到SQL Azure數據庫但可以通過SSMS

建立與SQL Server的連接時發生網絡相關或實例特定的錯誤。服務器未找到或無法訪問。驗證實例名稱是否正確,並將SQL Server配置爲允許遠程連接。 (提供程序:命名管道提供程序,錯誤:40 - 無法打開到SQL Server的連接)「source =」。Net SqlClient Data Provider「detail =」System.Data.EntityException

我可以連接到SQL Azure數據庫使用SSMS時,當我在連接到SQL Azure數據庫的Azure模擬器中運行我的應用程序時,所有內容都可以完美運行,但一旦發佈,它就會拒絕連接。任何幫助將大量讚賞!

+0

我意識到問題在於,當我發佈我的應用程序時,它似乎沒有從web.release.config文件中獲取設置,但它使用了web.config中的設置。我不明白爲什麼這是因爲我在「發佈」配置中構建解決方案 - 有什麼想法? – JayneT

回答

0

我相信你們已經發布了配置天青不具有正確的SQL Azure的服務器名稱,而是一些地方/在本地SQL服務器。這可能嗎?您可以遠程訪問實例並驗證正確的.config和SQL Azure服務器嗎?

從看來,你的應用程序沒有使用TCP的錯誤/ IP連接到您的SQL Azure的,而是命名管道,這通常意味着SQL Azure的服務器名稱是不可能有效的TCP/IP主機。

1

甲SQL天青連接字符串(使用EF模型優先/數據庫前)通常lookes這樣的:

<connectionStrings>  
    <add name="SampleEntities" connectionString="metadata=res://*/Models.SampleEntities.csdl|res://*/Models.SampleEntities.ssdl|res://*/Models.SampleEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=tcp:abcdefg.database.windows.net,1433;Database=asdf;User [email protected];Password=XXXXXX;Trusted_Connection=False;MultipleActiveResultSets=True;Encrypt=True;&quot;" providerName="System.Data.EntityClient" /> 
</connectionStrings> 

甲SQL天青連接字符串(使用代碼優先)通常如下所示:

<connectionStrings> 
    <add name="SampleContext" connectionString="Data Source=tcp:abcdefg.database.windows.net,1433;Database=asdf;User [email protected];Password=XXXXXX;Trusted_Connection=False;MultipleActiveResultSets=True;Encrypt=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

第二連接字符串也將工作,沒有實體框架。

+0

-1:你發佈的是特定於ef的,而不是sql azure。 – gaurav

+0

@gaurav真的,我延長了帖子也包括非EF(型號第一)SQL Azure的連接字符串 – hydr

相關問題