2011-02-11 50 views
8

我在C#.NET中開發了一個使用Excel Interop的控制檯程序。 該程序在我的開發機器和Windows Server 2008上工作得很好,如果我從命令行運行它。無法使用Excel Interop安排程序

當我嘗試安排任務每天運行它,我得到這個惱人的互操作錯誤:

02/11/2011 00:30:05,000 [1] FATAL My.Program [(null)] - Unable to Microsoft Office Excel open file 'E:\excel.xls' by one of several reasons: 

• The file name or path does not exist. 
• The file is being used by another program. 
• The workbook you are trying to save has the same name as the currently opened book. 

System.Runtime.InteropServices.COMException (0x800A03EC): Unable to access the Microsoft Office Excel file 'E:\excel.xls' by one of several reasons: 

• The file name or path does not exist. 
• The file is being used by another program. 
• The workbook you are trying to save has the same name as the currently opened book. 
    in Microsoft.Office.Interop.Excel.Workbooks.Open (String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, IgnoreReadOnlyRecommended Object, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad) 

文件「E:\ excel.xls」存在,如果在程序啓動時完全關閉,因爲如果我嘗試在我的命令行中運行相同的程序,它會按預期結束。

我也設置我的任務以管理員身份運行,所以它不應該是權限問題。

你能幫我嗎?

+0

你找出解決方案還是解決這個問題?我有完全相同的問題,你可以請你發佈你的解決方案嗎?謝謝! – dpac 2011-10-25 20:39:17

回答

1

當您從計劃任務執行Office自動化時,事情會變得有點怪異,所以我建議嘗試使用不同的用戶帳戶。

如果它在你登錄時有效,那麼我建議設置任務計劃程序在你的賬戶下運行它。如果仍然有效,請創建一個與您的帳戶具有相同權限的新帳戶,並使其在該帳戶下運行。

否則,請嘗試以管理員帳戶登錄,並確保以管理員身份登錄時運行該應用程序。例如,也許有一些Office在用戶或類似用戶的第一次交互式登錄期間被設置。

+0

正如我所說,我已經安裝計劃任務以管理員身份運行 – muek 2011-02-12 07:04:53

+0

@muek:這不是我的回答,但除非管理員是您通常登錄的帳戶?我的答案不是關於權限,而是關於兩個帳戶下的所有設置都是相同的。 – 2011-02-12 09:12:10

+0

我使用控制檯或時間表運行的aacount是一樣的 – muek 2011-02-15 23:53:12

1

The file 'e:\excel.xls' exists

它沒有。像E這樣映射的驅動器號是每個用戶。該驅動器僅在您的用戶帳戶下有效,計劃的任務可能正在使用另一個帳戶運行。不要修改帳戶,最好的辦法是使用通用名稱。像\\server\share\excel.xls,這對任何帳戶都有效。在serverfault.com上詢問更多關於它的問題

0

我努力得到這個工作服用。我一直都在谷歌,我認爲我已經解決了我的問題,有一個線程的幫助,有一個下拉,同時設置計劃任務,允許您選擇XP作爲「配置」選項,XP選項只是從一開始就創建任務時可用。只要計劃任務的所有者實際登錄到計算機中,這就可以正常工作。

我終於可以在DCOM配置中通過調整用戶的身份和硬編碼面板來糾正它。

1

總之一定要創建在任務調度使用的配置文件適當的權限,這些文件夾:

C:\ WINDOWS \ system32 \設置\ systemprofile \桌面 C:\ WINDOWS \ Syswow64資料\設置\ systemprofile \ Desktop