簡體   English   中英

SQL Server 2008 connectionString問題

[英]SQL Server 2008 connectionString question

我正在嘗試使用ASP.NET MVC 3連接到我的SQL Server 2008數據庫。這是我的連接字符串:

  <connectionStrings>
    <add name="AppConnectionString"
         connectionString="Data Source=(local);Initial Catalog=DatabaseName;User Id=UserName;Password=PassWord;"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

什么是錯的?

當我嘗試在DbContext中查詢某些內容時,我得到以下異常:

  • $ exception {“提供程序未返回ProviderManifestToken字符串。”} System.Exception {System.Data.ProviderIncompatibleException}

  • InnerException {“與SQL Server建立連接時發生與網絡相關或特定於實例的錯誤。未找到服務器或無法訪問服務器。驗證實例名稱是否正確以及SQL Server是否配置為允許遠程連接。 provider:SQL網絡接口,錯誤:26 - 找到指定的服務器/實例時出錯)“} System.Exception {System.Data.SqlClient.SqlException}

有人可以幫幫我嗎?

謝謝

首先檢查你的mssqlserver服務是否正常運行。 只需在命令提示符下運行net start mssqlserver

然后嘗試將連接字符串Data Source=(local)更改為Data Source=.

以上所有假設您在本地計算機上安裝了sql server。

該錯誤意味着您的connectionstring中的數據源名稱錯誤或者您的sql server未配置為允許遠程連接:請參閱此處如何解決此問題。

你能ping服務器嗎?

您可以創建一個新的空文本文件,將其重命名為test.udl,雙擊它並以此方式創建連接字符串。 (將打開一個對話框,您可以選擇提供者,服務器,數據庫等)。

另外,請查看w ww.connectionstrings.com ,例如連接字符串

還有一個實例需要考慮。 例如,如果您使用sqlexpress,它可能是(本地)\\ SQLEXPRESS

除了(本地)嘗試(localhost)或127.0.0.1(環回地址 - 沒有地方像;-)

單個時期也將“。” 解決到本地機器。

您的連接字符串和上面的建議假定您正在嘗試連接到未命名的默認實例。 如果您的服務器實例已命名,則需要將其作為conn字符串的一部分包括在內,例如:。\\ ServerName

有關更多信息,請訪問: http//connectionstrings.com

我有類似的問題,這些是幫助我的步驟:

1)您的應用程序必須有一個App.config,其中包含一個名稱與您從DbContext繼承的類同名的連接字符串。 在我的情況下“TestEF_CF.ProductContext”。

<add name="TestEF_CF.ProductContext" connectionString="Data Source=localhost;Initial Catalog=ef_cf_test;Integrated Security=True" providerName="System.Data.SqlClient" />

2)在開始使用之前無法創建數據庫。 只需將初始目錄設置為您希望Entity Framework在自動創建數據庫時創建的名稱。

如果需要,請參閱我的stackowerflow問題以獲取更多信息: Entity Framework 4.1 Code First Freeze

如果你看看InnerException,你實際擁有的是一個登錄問題。

我需要做的就是將DefaultAppPool運行的帳戶更改為NetworkService(轉到“高級設置”並更改“處理模型”,“身份”),然后選擇一個可以訪問您的數據庫的帳戶。

當然,假設您的應用程序使用DefaultAppPool在IIS中運行。

我做了NetworkService並授予NT AUTHORITY \\ NETWORK SERVICE用戶訪問我現有數據庫的權限。

然后這讓我連接。 我的情況可能是具體的,但我想我會分享以防萬一。

        SqlConnection [object name];
        [object name] = new SqlConnection("Data Source=Server_address/name;Initial Catalog=myDatabase;Integrated Security=True");
        [object name].Open();

注意:不應放置顯示的方括號,只需放置對象名稱。 Server_address:您的計算機名稱。 myDatabase:您的數據庫名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM