2013-07-24 52 views
0

,當我想推出的ASP .NET配置站點的安全選項卡爲我的ASP NET MVC 4項目出現以下錯誤很多與該錯誤有關的問題,但我嘗試了很多解決此問題的技巧(我嘗試了這裏的建議解決方案 - http://blogs.msdn.com/b/walzenbach/archive/2010/04/14/how-to-enable-remote-connections-in-sql-server-2008.aspx,但錯誤仍在此處)。網絡有關的錯誤

但讓我解釋一下解決方案中我的數據庫是什麼。我有一個本地數據庫(App_Data中的一個.MDF文件)和一個由ASP NET MVC生成的用戶身份驗證數據庫。它們都放在App_Data文件夾中,因爲我試圖在不同的機器上使用此解決方案。奇怪的是,在我家裏的筆記本電腦上沒有這樣的問題 - 我能夠創建角色,探索用戶和安全選項卡中的所有功能,我認爲我的臺式機上的SQL Server可能存在一些問題 - 我在我的筆記本電腦上使用Express版本,在另一臺機器上使用開發者版本,因爲這些版本無法正常工作。

我的連接字符串如下:

<add name="FootballTransfers20130717145140Context" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\FootballTransfers.mdf;Integrated Security=True;MultipleActiveResultSets=True;Connect Timeout=30" 
    providerName="System.Data.SqlClient" /> 
<add name="DefaultConnection" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\DefaultConnection.mdf;Integrated Security=True;MultipleActiveResultSets=True;Connect Timeout=30" 
    providerName="System.Data.SqlClient" /> 

第一個是實體框架和相關的地方,我存儲我的應用程序特定數據的數據庫。第二個是SQL生成的用戶管理數據庫。沒有第二個連接字符串,我無法打開帳戶控制器的任何操作。

這很奇怪,因爲它在一臺機器上工作,而不是在另一臺機器上工作。我想知道連接字符串是否有問題,但我想SQL Server有一些問題。正如我所說我嘗試了各種解決方案,但他們沒有工作。

+0

當您使用實體框架時,您自動生成的連接字符串和EF提供程序將是「System.Data.EntityClient」。您的數據庫位置無論是app_data還是server.EF都會採取更正措施。 – Niks

回答

0

LocalDB只是SQL Server Express的一項功能。您將不得不在計算機上安裝SQL Server Express或將數據庫導入到SQL Server並更改連接字符串。

在生產中,無論如何,您可能必須遷移到完整的SQL Server版本。

+0

實際上,其他數據庫的連接字符串使用LocalDb來訪問本地.mdf文件,並且它可以工作。這是什麼原因,它不會爲用戶工作? –

+0

@Niks probalby解釋它。 EF修正了第一個連接字符串,而ASP.NET試圖直接使用第二個字符串連接並失敗。儘管如此,該消息是明確的 - 你試圖連接到一個不存在的SQL Server實例 –

+0

我發佈了一個新的回覆,發佈這裏太長了。 –

0

我在AccountController中添加了我想要在代碼中創建的角色,現在我可以向角色註冊用戶,但是現在出現的問題是,當我將某個操作的Authorize屬性設置爲只有出現以下錯誤:

與SQL Server建立連接時發生網絡相關或實例特定錯誤。服務器未找到或無法訪問。驗證實例名稱是否正確,並將SQL Server配置爲允許遠程連接。 (提供程序:SQL網絡接口,錯誤:26 - 錯誤定位服務器/實例指定)

當我刪除屬性,以便任何人都可以訪問它,操作正常。我在網上發現了一些文章,說必須在配置文件中指定提供者,但是一些錯誤不斷出現,這些標籤是未知的。

+0

將調用授權給數據庫。我想通過「添加角色」你使用不同的連接字符串修改數據庫?所以當你試圖使用失敗的連接字符串時,它又失敗了?請將您的數據庫添加到SQL Server並修復連接字符串 –