我有一個Windows服務打開一個OLEDB連接到Excel文件的時候,像這樣的懸掛OLEDB連接到Excel文件時掛起:運行時Windows服務打開
using (var connection = new OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ fileName + ";Extended Properties=\"Excel 8.0\""))
{
connection.Open();
// start using the connection
}
此代碼工作正常作爲控制檯應用程序。當我使用Visual Studio調試Windows服務時,我可以進入代碼,直到我打到connection.Open()的調用。此時,線程掛起。沒有例外被拋出。 Visual Studio保持響應,直到我點擊「Break All」或「Stop Debugging」按鈕。此時,Visual Studio也掛起。當我終止進程時,Visual Studio再次變得響應。
有誰知道爲什麼發生這種情況,以及如何解決它?
編輯:fileName是一個絕對路徑;該文件是由服務本身編寫的。
是文件名絕對還是相對?由於服務techincally沒有運行目錄。儘管在實踐中,他們通常從C:\ Windows \ system32 \運行。 – TJMonk15
文件名是絕對的,服務可以訪問該文件。實際上,該文件是由服務本身編寫的。 –
Excel 2007格式文件(.xlsx或.xlsm)還是早期的.xls格式文件?我相信Excel 2007格式需要不同的連接字符串 – barrowc