SQL Server 2008開始, Named Pipe預設是已停用的狀態. 會停用是因為TCP/IP協定比較常用, 也因為不安全了.
請版大到SQL Server Configuration Manager(組態管理員)中, SQL Server網路組態下的SQL Server通訊協定中, 把Named Pipe(命名管道)設定為'已啟用'.
設定好後把SQL Server服務重新啟動.
如果是已啟用的狀態, 還是發生相同問題, 這是因為IIS的驗證設定...
請先確定資料庫登入模式與ASP中呼叫的ODBC設定的驗證模式是否相同, 如果是SQL Server登入模式, 請確定帳密是正確的.
如果是Windows驗證模式, 因為SQL Server2008開始預設不再配合AD的自動驗證, 要自己去設定KERBEROS驗證...這有些技術細節要詳談, 最簡單的方法是把會要登入SQL Server資料庫的帳號加進資料庫安全性下的使用者中, 給予適當的權限, 當然帳密要和ASP的ODBC登入資訊一樣. 這樣說, 你應該瞭解, 如果是用ODBC, 連線設定也要跟著調整.
檢查一下你的程式是不是以命名通道連線方式,如果不是當可能的連線方式都沒有時,連線就會以NamedPipes來嘗試做連線
試著在WEB主機上新增ODBC,然後在用戶端設定中選則TCPIP或你程式連線的方式,這樣當你的ODBC連線成功,應該就可以了