Windows 事件查看器 → Application 日誌記錄事件 ID 3005:
事件代碼: 3005
事件消息: 發生了未處理的異常。
異常類型: SqlException
異常消息: 在建立與服務器的連接時出錯。在連接到 SQL Server 2005 時,在默認的設置下 SQL Server 不允許進行遠程連接可能會導致此失敗。 (provider: TCP 提供程序, error: 0 - 由於目標機器積極拒絕,無法連接。)
堆棧跟蹤定位到 _Bbsdy.Page_Load 第 79 行 SqlConnection.Open()。
SQL Server 2005/2008 默認禁止遠程 TCP/IP 連接,僅允許本地 Shared Memory/Named Pipes。應用程序通過 TCP/IP 連接被積極拒絕(錯誤碼 10061)。
IIS 處理 .asmx 等映射擴展名時,若未勾選「驗證文件存在」,請求直接傳給 ASP.NET 處理管道。若文件不存在且無路由規則,ASP.NET 拋出 404 異常並寫入事件日誌。此問題放大了連接失敗的可見度。
MSSQLSERVER → Database Engine
# 確認 TCP/IP 協議已啟用
SQL Server Configuration Manager → SQL Server 網絡配置 → MSSQLSERVER 協議 → TCP/IP → 啟用
# 確認 IP 地址配置
TCP/IP 屬性 → IP Addresses → IPAll → TCP Port = 1433
.asmx、.aspx 等映射iisreset原理:啟用後,IIS 先檢查物理文件是否存在,不存在直接返回 404,不進入 ASP.NET 管道,避免異常記錄污染事件日誌。
telnet sql_server_ip 1433 端口通暢| 問題 | 症狀 | 解決 |
|---|---|---|
| 實例名錯誤 | Error 26 - 找不到服務器/實例 | 連接字符串 Server=IP\INSTANCE 或 Server=IP,PORT |
| 防火牆阻攔 | Error 10060 - 連接超時 | Windows 防火牆入站規則開放 1433/實例端口 |
| 協議不匹配 | Named Pipes 失敗、TCP 成功 | 強制指定 Network Library=dbmssocn (TCP) |
| 認證模式 | Error 18456 - 登錄失敗 | 確認 SQL/Windows 認證模式、用戶權限 |
Event ID 3005 SqlException 由SQL Server 遠程連接未啟用引發,IIS 擴展映射未驗證文件存在放大了異常記錄。雙重修復:SQL Server 配置器啟用 TCP/IP 遠程連接 + IIS 勾選驗證文件存在,可徹底消除該異常並優化請求處理路徑。