2013-01-09 53 views
2

我正在開發使用Visual Studio 2008和Sql Server 2008 Express的網站。我進入了開發階段,所以代碼是正確的,因爲我的一些同事使用相同的工具正確運行它。問題是:一旦我運行網站我不能使它與數據庫交流。他們都在我的本地機器。拋出的錯誤是:SQL Server:無法從本地網站連接(SQL網絡接口,錯誤:26 - 錯誤定位服務器/實例指定)

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: 26 - Error Locating Server/Instance Specified)

奇怪的東西,我可以瀏覽該數據庫throught Visual Studio的本身,通過數據資源管理器面板。通過這樣做,我讀了性能的連接字符串,它看起來像

Data Source=*MY_MACHINE*\SQLEXPRESS;Initial Catalog=*MY_DB*;Integrated Security=True

我也試着像

Data Source=.\SQLEXPRESS;Initial Catalog=*MY_DB*;Integrated Security=True

Data Source=localhost\SQLEXPRESS;Initial Catalog=*MY_DB*;Integrated Security=True

都沒有結果的一些變化。

謝謝

+0

是在本地計算機上打開的SQL瀏覽器服務? – Sorceri

+0

是的,_SQL Server_和_SQL Server Browser_服務都在我的機器上運行。 – balanza

回答

1

問題是ASP.NET工作進程沒有訪問數據庫的權限。

有很多方法可以解決這個問題,但最簡單的方法是讓本地組每個人都有權訪問數據庫。那麼你應該能夠連接。

你可以更改連接字符串不使用集成安全性,但給它一個用戶名和密碼

你也應該看到在事件日誌中顯示相應的錯誤消息(話說USER某某被不允許訪問數據庫),那麼你可以給這個用戶權限。

當你像自己一樣運行時,你是以自己身份連接並且你有權利。當IIs正在運行時,它將作爲工作進程運行,並且該用戶無法連接。

+0

我試過兩種方法。對於第一個,在進程列表中,我看到了要分配給我的用戶的Web服務器進程,所以它似乎不會發生你所說的問題(無論如何,這聽起來是合理的:我發現錯誤用戶?)。 對於第二種方式,我創建了一個新用戶,授予每個權限和所有權限,但仍然是相同的錯誤。所以我問:**有沒有辦法檢查數據庫是否正確聯機並且可以訪問?** – balanza

+0

它可能是它(或一個線程)作爲一個不同的身份運行。您是否檢查了機器上的事件日誌?創建新用戶不是解決方案 - 您必須將工作進程用戶添加到SQL Server安全設置中。 (也許這就是你的意思?) – Hogan

+0

是的,讓我把重點放在:我如何認識到正確的工人進程用戶? – balanza

相關問題