2011-10-12 77 views
0

我想託管客戶機上的ASP.NET 2.0應用程序連接到SQL服務器,安裝在域控制器上運行Windows Server 2003的2000實例(我上感謝這不是最佳實踐,但它是我不能改變的)。我正在使用SQL Server身份驗證,而不是Windows身份驗證。連接到SQL Server 2000的一個Windows Server 2003域控制器

在調試過程中,會顯示在「連接」嘗試在Web應用程序(而不是在運行SQL Server內的任何物體)內的點以下錯誤:

「在建立連接時出錯當連接到SQL Server 2005時,這種失敗可能是由於在默認設置下SQL Server不允許遠程連接(提供者:命名管道提供程序,錯誤:40 - 無法打開與SQL Server的連接)「

我已經做了一些研究,並檢查了各種東西:

1)我確定連接字符串是正確的 - 事實上,我建立了一個小的Windows應用程序,使用相同的連接信息和連接成功...

2)這僅限於Web應用程序 - 一個Windows應用程序在遠程客戶端機器上運行使用相同的連接字符串連接就好(請參閱1)。

3)在兩臺計算機不會阻止連接上的防火牆設置(參見圖1)。

4)我可以ping的Windows 2003服務器(參見圖1)

5)的SQL Server憑證肯定是要的對象的權限需要

6)如果我(暫時)向Web應用程序在Windows Server 2003上運行它,它會加載並運行正常(在單獨的計算機上使用瀏覽器,或者在我嘗試連接的客戶端計算機上) - 建議這只是遠程連接的問題,並確認連接再次在機器之間,並確認SQL Server用戶的必要安全權限。

7)我就可以開始在客戶機上的查詢分析器,並使用相同的SQL服務器憑據,可以運行在目標數據庫就好上查詢相同。

難倒。請幫忙!

+0

是否啓用SQL中的遠程連接?進入企業管理器,然後在左窗格中展開,直到看到有問題的服務器實例。 右鍵單擊,然後進入屬性 - >安全 - > SqlServer和Windows應該被選中 – RogueSpear00

+0

是的 - 這是啓用的,並且在連接下,遠程連接已經啓用。雖然檢查,我注意到,SQL Server不是Active Directory的一部分。我想知道是否有人知道這可能是一個問題。此外,客戶端機器未登錄到域 - 但我不認爲這將是一個問題,因爲從同一客戶端機器上的Windows應用程序獲得的其他連接。 – Marco

+0

您的遠程計算機與服務器在同一子網上嗎?你說你可以ping通它 - 但ping不一定能夠澄清流量。 – RogueSpear00

回答

0

您需要進入SQL Server配置管理器,並確保命名管道選項是打開的。它在安裝SQL Server時默認情況下未打開。

+0

嗨 - 感謝您的快速響應,我已經運行SQL Server服務器網絡實用程序和客戶端網絡實用程序,並且都啓用了命名管道 - 是否還有其他地方需要查看? – Marco

0

因爲我的研究在覆蓋一個Windows應用程序的連接在同一臺機器連接的能力而不是ASP.NET應用程序中的原題做了,並確認Web應用程序是工作在服務器上的,我確信SQL服務器設置正確,連接和防火牆不是問題 - 它必須在Windows應用程序和網絡應用程序的安全憑證上有所不同。

的Windows應用程序運行在登錄Windows用戶的安全證書,並使用該認證,而Web應用程序在一個受限帳戶運行,在默認情況下連接到SQL Server時,在沒有通過這些憑據。我只是簡單地添加到web.config中,它模擬運行Web應用程序的用戶帳戶,並且它一切正常!

問題解決。