0

即時工作的Windows服務器2008年,在這臺服務器我開發了一個vb.net 2008控制檯應用程序,打開一個Excel 2003文件,並使用其內容創建一個XML文件,所以我有兩種情況:
1.差異在執行該程序:如果我從Visual Studio運行應用程序或直接從可執行文件打開並處理Excel沒有問題,但如果我在Windows任務計劃程序或在執行此程序的adtempus中配置任務失敗並引發此異常:

異常來自HRESULT:0x800A03EC-在Microsoft.Office.Interop.Excel.Workbooks.Open(字符串文件名,對象更新鏈接,對象只讀,對象格式,對象密碼,對象WriteResPassword,對象I gnoreReadOnlyRecommended,對象起源,對象分隔符,可編輯的對象,對象通知,目標轉換器,對象AddToMru,對象本地,在.Module1.convertExcelToXmlFile對象CorruptLoad) (字符串excelFile)

我有很多閱讀有關此異常,但目前我無法解決,所以我想知道這個程序如何可以從Visual Studio中正確執行或直接從執行,但如果兩個情況都在同一個服務器上執行任務時失敗?有沒有辦法解決這個問題?直接從.exe執行控制檯應用程序與通過任務計劃執行的差異?


2.在控制檯應用程序中,當我用open方法打開excel文件時,excel中的文件出現幾秒鐘然後關閉,有沒有辦法訪問excel文件的內容,但文件不要在Excel中顯示?

謝謝。

回答

1

您不應該在無人蔘與的過程中使用Office Interop。

微軟目前並不提倡,不支持,Microsoft Office應用程序自動化從任何無人蔘與的非交互式客戶端應用程序或組件(包括ASP,ASP.NET,DCOM和NT Service),因爲Office Office在此環境中運行時可能會出現不穩定的行爲和/或死鎖。

如果您正在構建一個在服務器端上下文中運行的解決方案,則應該嘗試使用對於無人執行安全的組件。或者,您應該嘗試找到允許至少部分代碼運行客戶端的替代方案。如果您從服務器端解決方案使用Office應用程序,則該應用程序將缺少成功運行所需的許多必要功能。此外,您將面臨整體解決方案穩定性的風險。

http://support.microsoft.com/?id=257757

有許多的產品,將操作的Excel文檔,並運行正確無人值守。

0

您試圖在網絡上打開的Excel文件?

如果是這樣,問題很可能是因爲您的任務計劃程序服務及其運行的任何作業都是在本地SYSTEM帳戶下運行的(默認情況下),該帳戶禁止從網絡訪問。

如果您將任務更改爲在其他帳戶下運行(例如,您已爲遠程文件共享授予權限的域帳戶)。 (請注意,此更改可能會影響其他計劃任務的運行方式,因此您需要確保所需的權限。)

+0

嗨,該文件位於im直接從Visual Studio和任務計劃或adtempus運行該程序在同一個服務器 – eliv

+0

那麼,這就排除了我的答案上面:)其他常見原因如何「找不到文件」類型的錯誤,例如:您是使用完整路徑而不是相對路徑(因爲任務可能正在從不同的工作目錄執行)?或者,是否有空格的文件路徑中缺少任何引號? – ewall

0

萬一你還沒想出來呢,這工作對我來說最可能的分辨率可以在這個網址找到:

https://social.msdn.microsoft.com/Forums/en-US/b81a3c4e-62db-488b-af06-44421818ef91/excel-2007-automation-on-top-of-a-windows-server-2008-x64?forum=innovateonoffice

如果您的服務器是一個64位的一個創建一個在下面提到的路徑命名爲「桌面」文件夾即C:\ WINDOWS \ Syswow64資料\ CONFIG \ systemprofile \桌面

如果您的服務器是一個32位的一個,請在此文件夾C:\ Windows \ System32 \ config \ systemprofile \ Desktop

相關問題