2013-12-09 212 views
2

我很困惑實體框架Web API項目的Web.config文件中的連接字符串。我嘗試了很多變體,但沒有一個能夠幫助我。目前,連接字符串IIS和SQL服務器之間的連接字符串

<connectionStrings> 
     <add name="DefaultConnection" connectionString="Server=.\SQLEXPRESS;Database=MyProject;User Id=John;Password=duck;" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

我可以訪問被稱爲MyProject的數據庫在SQL Server Management Studio中2012(甚至遠程),使用John作爲用戶名和duck作爲密碼。

該項目由與SQL服務器在同一臺機器上的IIS服務器運行,SQL服務器的實例名稱爲SQLEXPRESS。 我的網頁顯示在本地主機上,但控制器只需要回覆500 Interal server error,無論何時請求來自sql數據庫的一些數據。它看起來像沒有連接到數據庫。

爲了獲得IIS和SQL服務器之間的連接,我需要添加或更改什麼?或者如何更好地定位問題的原因?

+0

另外,儘量在你的頁面設置斷點,看實際發生錯誤的地方。它可能不是數據庫連接問題。 –

回答

2

This教程如何爲IIS 7.0上的ASP.net網站設置SQL Server 2008讓我接近解決方案。

基本上,你需要做的是

  1. 安裝SQL Server。
  2. 允許到SQL服務器的TCP/IP連接。
  3. 附加您的數據庫。
  4. 創建一個登錄。我正在使用SQL身份驗證。
  5. 將用戶權限分配給您的數據庫。
  6. 配置您的數據庫連接字符串。

更改我的連接字符串的名稱幫助我最終建立連接。

<connectionStrings> 
     <add name="MyProjectContext" connectionString="Server=.\SQLEXPRESS;Database=MyProject;User Id=John;Password=duck;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

上下文模型需要這個名稱。

public class MyProjectContext : DbContext 
{ 

    public MyProjectContext() : base("name=MyProjectContext") 
    { 
    } 

    public DbSet<Model1> Model1 { get; set; } 
    public DbSet<Model2> Model2 { get; set; } 
} 
1
<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MyProject;User ID=John;Password=duck" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

請嘗試上述連接語法。

+0

對不起,沒有區別 – Explicat

1

基本上只是修改使用集成安全=假像您的連接字符串:

,它會工作...

+0

基本上只是使用Integrated Security = False修改你的連接字符串,如:

+0

基本集成安全性= True表示---當前的Windows帳戶憑證用於身份驗證。因此,當連接使用SQL Server身份驗證而不是Windows時,請將其設置爲False –

相關問題