錯誤: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
原因: ORACLE_HOME 目錄 Authenticated Users 缺少「讀取與執行」權限。
解決: 以管理員身分 → 目錄屬性 → 安全性 → 移除再重新加入「讀取與執行」→ 進階 → 套用至子物件 → 重啟電腦。
排查清單:
ORACLE_SID 是否正確。listener.ora、tnsnames.ora 主機名/IP 正確性。netstat -a 檢查連接埠占用。HKEY_LOCAL_MACHINE\Software\Oracle\Home0 新增 USE_SHARED_SOCKET = True。PROTOCOL.ORA 加入 TCP.NODELAY=YES。HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG,設 TCPMAXDATARETRANSMITIONS=20。原因: ADO.NET 將無效連接放回連接池,下次取用失敗。
解決: 連接字串加入 Pooling=false 禁用連接池。
延伸: SQL Server 重啟同理,SqlClient 亦可 Pooling=false;OLEDB 用 OLE DB Services=-4。