我已經閱讀了堆棧溢出和MSDN這樣的其他問題,但仍無法找到此問題的答案。IIS無法連接到SQL Server 2008R2
我的開發機器正在運行VS2010SP1和IIS7。 IIS7安裝在.Net框架之後,所以我不得不手動配置網站。我在本地將應用程序部署到IIS,而不是使用Casinni。
環境:
- 上的Win7 64位(開發機)
- IIS上的Win7 64位運行(開發機)
- SQL Server 2008上的Win2008運行(服務器)
在Visual Studio網站的選項中,我選擇使用IIS並單擊創建虛擬目錄,該虛擬目錄起作用(即它成功創建目錄)。
但是當我再來看,我得到一個SQL連接錯誤說該應用程序:
而 建立coneection到SQL Server時出現與網絡相關的或特定於實例的錯誤。服務器未找到或 無法訪問。驗證實例名稱是否正確,並且SQL Server配置爲允許遠程連接。
SQL Server配置爲允許遠程連接,我可以使用相同的憑據(目前sa帳戶從開發機連接到SQL Server Management Studio中,是的,我知道這是很糟糕,並會在稍後進行更改,這僅用於開發目的)。
我試着將machine.config
文件的條目LocalSqlServer
更改爲指向服務器以防萬一,但即使服務器是遠程的而不是本地的也沒有幫助。
我也嘗試添加該到Web.config:
<remove name="LocalSqlServer" />
<add name="LocalSqlServer"
connectionString="Data Source=esdc01;Initial Catalog=ECS;Persist Security Info=True;User ID=sa;Password=******;MultipleActiveResultSets=True;Network Library=dbnmpntw;"
providerName="System.Data.SqlClient" />
連接字符串中web.config
是正確的。
如果我進入VS2010網站的屬性,並將其更改回「使用Visual Studio開發服務器」,那麼應用程序工作正常,它會連接到SQL Server。
因此,當我使用IIS時,web.config
或machine.config
被訪問用於它們的連接字符串...那麼IIS在哪裏查找連接字符串?我很困惑!
在服務器上,啓用了命名管道和TCP/IP。
如果我用服務器IP地址替換servername esdc01,它仍然不起作用。 – rmcsharry