3

這是我的連接字符串:如何配置SQL Server與ASP.NET MVC一起使用Windows身份驗證?

<add name="MyDb" providerName="System.Data.SqlClient" connectionString="Server=localhost;Data Source=.\MSSQLSERVER;Initial Catalog=MyDb;Integrated security=SSPI;" /> 

它的工作我的本地機器上就好了,但我的服務器上,部署我的應用程序後,它不想工作,它給了我這個錯誤:

[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid)]

當我更改連接字符串以使用帳戶憑證-sa,它連接的很好,所以我確切地知道這是錯誤的sql服務器配置的問題。

所以我的問題是:我已經新安裝的SQL Server實例,如何配置它,所以它允許Windows身份驗證我的asp.net MVC應用程序?

編輯:好吧,畢竟,我再次查看了我的連接字符串,並刪除了Data Source =。\ MSSQLSERVER。它幫助了,現在一切正常,謝謝你們的幫助。

回答

4

如果您的應用程序在IIS的DefaultAppPool下運行,它將使用「IIS APPPOOL \ DefaultAppPool」帳戶以集成模式訪問數據庫。因此,要授予該帳戶中的SqlServer:

  1. 開放SQLSERVER實例
  2. 擴大安全性,選擇「新建登錄」
  3. 集「IIS APPPOOL \默認應用」爲登錄名,給從「賬戶DB訪問用戶映射「選項卡。
  4. 點擊確定即可創建。

希望這有助於。

+0

這是什麼,謝謝。無論如何,我像你說的那樣做了,並且有叫'IIS APPPOOL \ DefaultAppPool'的用戶。我也改變了我的應用程序從defaultapppool運行(btw defaultapppool被列爲本地服務)。但我仍然得到同樣的錯誤。我現在能做什麼? :/ – ojek 2013-02-17 17:56:49

0

看看following article on MSDN,它說明了如何更改SQL Server的身份驗證模式。

你可以SQL Server Management Studio中:

  1. In SQL Server Management Studio Object Explorer, right-click the server, and then click Properties.
  2. On the Security page, under Server authentication, select the new server authentication mode, and then click OK.
  3. In the SQL Server Management Studio dialog box, click OK to acknowledge the requirement to restart SQL Server.
  4. In Object Explorer, right-click your server, and then click Restart. If SQL Server Agent is running, it must also be restarted.
+0

是的,我已啓用Windows身份驗證在那裏。我想我的問題是,因爲我沒有添加任何登錄?我是否需要添加到我的登錄網絡服務或類似的東西? – ojek 2013-02-17 16:28:27

+0

是的,您需要添加一個與您需要訪問的數據庫關聯的帳戶。然後,您應該讓您的Web應用程序的應用程序池在相同的帳戶下執行。與服務器相關的問題更適合http://serverfault.com,所以如果你需要更多的細節,不要猶豫,在那裏發佈你的問題。 StackOverflow是一個編程相關的問題,這裏沒有服務器配置問題。 – 2013-02-17 16:29:03

0

首先要弄清楚其下的Windows帳戶您的網頁上運行。例如,您可以打印的值:

User.Identity.Name 

如果它是一個本地只佔像「網絡服務」,你必須更改帳戶。如果您在IIS中運行,則該帳戶是應用程序池的一個屬性。

一旦您知道該帳戶,您就可以授予該帳戶在SQL Server中的登錄權限。

+0

爲NetworkService設置應用程序池。我添加了登錄到我的sql服務器稱爲網絡服務(它被列爲NT AUTHORITY \ NETWORK SERVICE)並授予它管理員權限。仍然沒有結果。 – ojek 2013-02-17 16:50:23

+0

每臺服務器都有自己的「網絡服務」。所以只有當SQL Server與Web服務器位於同一臺服務器上時纔有效。嘗試配置一個不同的(或新的)帳戶。 – Andomar 2013-02-17 16:56:38

+0

是的,我的網絡服務器和sql server在同一臺機器上。 – ojek 2013-02-17 17:00:07

相關問題