Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

IIS 事件 ID 3005「未處理的異常」SqlException 連接失敗根因與雙重修復方案

編輯:關於伺服器

錯誤現象

Windows 事件查看器 → Application 日誌記錄事件 ID 3005:

事件代碼: 3005
事件消息: 發生了未處理的異常。
異常類型: SqlException
異常消息: 在建立與服務器的連接時出錯。在連接到 SQL Server 2005 時,在默認的設置下 SQL Server 不允許進行遠程連接可能會導致此失敗。 (provider: TCP 提供程序, error: 0 - 由於目標機器積極拒絕,無法連接。)

堆棧跟蹤定位到 _Bbsdy.Page_Load 第 79 行 SqlConnection.Open()。

雙重根因分析

根因一:SQL Server 遠程連接未啟用(核心原因)

SQL Server 2005/2008 默認禁止遠程 TCP/IP 連接,僅允許本地 Shared Memory/Named Pipes。應用程序通過 TCP/IP 連接被積極拒絕(錯誤碼 10061)。

根因二:IIS 擴展映射「驗證文件存在」未勾選(誘發因素)

IIS 處理 .asmx 等映射擴展名時,若未勾選「驗證文件存在」,請求直接傳給 ASP.NET 處理管道。若文件不存在且無路由規則,ASP.NET 拋出 404 異常並寫入事件日誌。此問題放大了連接失敗的可見度。

修復方案

修復一:啟用 SQL Server 遠程連接(必須)

  1. 開始 → 所有程序 → Microsoft SQL Server 2005/2008 → 配置工具 → SQL Server 外圍應用配置器
  2. 選擇「服務和連接的外圍應用配置器」
  3. 展開 MSSQLSERVER → Database Engine
  4. 選擇「遠程連接」→ 勾選「同時使用 TCP/IP 和 Named Pipes」
  5. 點擊「應用」→ 系統提示重啟 SQL Server 服務,確認重啟
SQL Server外圍應用配置器

補充:SQL Server Configuration Manager 驗證


# 確認 TCP/IP 協議已啟用
SQL Server Configuration Manager → SQL Server 網絡配置 → MSSQLSERVER 協議 → TCP/IP → 啟用

# 確認 IP 地址配置
TCP/IP 屬性 → IP Addresses → IPAll → TCP Port = 1433

修復二:IIS 擴展映射勾選「驗證文件存在」(優化)

  1. IIS 管理器 → 網站 → 右鍵「屬性」→ 「主目錄」/「虛擬目錄」→ 「配置」
  2. 在「應用程序擴展」列表中找到 .asmx、.aspx 等映射
  3. 編輯 → 勾選 「驗證文件存在」
  4. 確定保存,重啟 IIS:iisreset

原理:啟用後,IIS 先檢查物理文件是否存在,不存在直接返回 404,不進入 ASP.NET 管道,避免異常記錄污染事件日誌。

驗證修復效果

  1. 瀏覽器訪問原報錯頁面,應正常顯示或返回業務邏輯錯誤(而非連接異常)
  2. 事件查看器 → Application → 刷新 → 無新增 Event ID 3005
  3. SQL Server 連接測試: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 勾選驗證文件存在,可徹底消除該異常並優化請求處理路徑。

Copyright © Windows教程網 All Rights Reserved