當網路與資料庫服務正常、WinForm 應用程式可連線,但 ASP.NET 2.0 應用程式連接 SQL Server 2000 卻出現 Named Pipes Provider, error: 40 - Could not open a connection to SQL Server,常見原因是 SQL Server 2000 未安裝 SP4 修補包。
執行以下 T-SQL 確認修補包版本:
SELECT SERVERPROPERTY('ProductLevel')
若回傳非 SP4,需安裝 SP4。
SP4 安裝過程可能要求使用 Windows 本機帳戶而非 SQL 帳戶,導致安裝完成後無法以 SQL 認證登入。解決步驟:
確認連接字串使用 TCP/IP 而非 Named Pipes:
Data Source=127.0.0.1,1433;Network Library=DBMSSOCN;Initial Catalog=MyDB;User ID=sa;Password=xxx;
Network Library=DBMSSOCN 強制使用 TCP/IP Sockets,避開 Named Pipes 問題。
完成上述步驟後,ASP.NET 2.0 應用程式即可正常以 SQL 認證連接 SQL Server 2000 SP4。