一個運作很久的上傳Excel匯入資料的ASP.NET程式今天忽然爆出"Unspecified error”錯誤!
(好"明確"的錯誤訊息~ orz)

程式的寫法是用"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Excel檔案位置;Extended Properties=Excel 8.0;HDR=YES;IMEX=1"建立OleDbConnection,開啟連線讀取Excel內容(詳細做法可以參考這篇微軟KB)。

試著由Exception.ToString()取得Callstack細節如下:

System.Data.OleDb.OleDbException: Unspecified error at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory

爬文查到相關討論,同時有兩位網友提到要靠IISRESET解決。由於伺服器上有多個網站正在運作,不想造成大規模的網站服務中斷,所以我們先試了重設Application Pool、重新儲存web.config等手段迫使該Web Application重啟,但問題依舊。最後只能協調使用單位,開響3R行動(Restart, Reboot, Reinstall)的第一槍 – Restart。

跑完IISRESET後,跟網友的經驗一樣,不明問題就消失了。

【心得】

  1. 某些重啟個別Web Application(變動web.config/重啟AppPool)無效的問題,還是得靠IISRESET解決
  2. 在Web Server端讀寫Excel,使用NPOI這類純粹.NET程式庫,看來還是較單純不易出錯的選擇。

Comments

Be the first to post a comment

Post a comment