2014-12-05 81 views
6

我將在本地網絡上演示一個ASP.NET MVC網站。此應用程序與數據庫的連接:如何讓IIS從ASP.NET MVC項目使用本地數據庫?

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-EBC-20141127093222.mdf;Initial Catalog=aspnet-EBC-20141127093222;Integrated Security=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

我想如果這個數據庫可以通過IIS和每當我跑我的應用程序在本地使用。我在IIS上創建了一個站點 - 它運行的是.NET v4。我的項目住在c:\inetpub\www\ebc。我可以發佈網站,但在觀看頁面收到此錯誤:建立SQL Server的連接


「發生網絡相關的或特定於實例的錯誤,服務器未找到或無法訪問。驗證實例名稱是否正確,並將SQL Server配置爲允許遠程連接(提供程序:SQL網絡接口,錯誤:50 - 發生本地數據庫運行時錯誤在LocalDB實例API方法調用中發生意外錯誤。事件日誌的錯誤細節。「

我知道我需要允許遠程連接到SQL Server通過微軟SQL服務器管理器嗎?有沒有辦法做到這一點els ewhere?

回答

6

最好的解決方法是使用SQL表達式,但如果你不希望有您需要做的幾個步驟,讓您的MVC應用程序的工作與的LocalDB

  1. 打開Visual Studio命令提示符以管理員身份
  2. 執行sqllocaldb share v11.0 IIS_DB(然後將數據庫共享,IIS可以訪問它)
  3. 改變網站的連接字符串指向數據庫的共享實例:Data Source=(LocalDb)\.\IIS_DB然後發佈再次

注意,在這一點上,你可能會收到訪問拒絕錯誤,還有就是如何解決它

  1. 進入到Visual Studio => databaseexplorer =>添加連接
  2. 服務器名稱輸入(LocalDb)\.\IIS_DB然後右鍵單擊連接,並選擇新的查詢,並執行此命令

    create login [IIS APPPool\DefaultAPPPool] from windows; 
    exec sp_addsrvrolemember N'IIS APPPool\DefaultAPPPool, sysadmin 
    
3

當有安裝在SQL Server的LocalDB的多個版本一臺機器,這個錯誤很常見。

嘗試使用(localdb)\mssqllocaldb作爲連接到LocalDB自動實例的通用服務器名稱,而不是「v11.0」或「v12.0」。

上面的自動localdb實例,在所有版本中都有一個默認名稱,並避免名稱&版本之間的衝突。

重要:在將localdb更新爲新版本時,請記住使用較舊版本創建的數據庫不適用於較新的版本。

相關問題