我有一個小的.NET應用程序,我通過任務計劃程序在Windows 2008 Server下運行。這個應用程序需要打開一個excel文件,然後將其保存爲csv。當我嘗試打開工作簿時,任務失敗。如果我在沒有任務調度程序運行的情況下手動運行它,該應用程序工作正常。如何使用「與桌面交互」從調度程序運行Windows 2008任務
我已將它設置爲「以最高權限運行」並已選中「運行天氣用戶已登錄或未登錄」。
我的猜測是這個過程需要與桌面進行交互,類似於檢查服務上的「與桌面交互」標誌。但是我一直無法爲計劃任務找到類似的東西。
這裏是失敗的代碼:(失敗的workbook.open調用)
public static void ConvertExcelToCsv(string source, string destination)
{
if (File.Exists(destination)) File.Delete(destination);
Application xl = new Application();
try
{
Workbook workbook = xl.Workbooks.Open(source, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Worksheet ws = (Worksheet)workbook.Sheets[1];
ws.SaveAs(destination, XlFileFormat.xlCSV, Type.Missing, Type.Missing, false, false, Type.Missing, Type.Missing, Type.Missing,true);
Marshal.ReleaseComObject(ws);
}
finally
{
xl.DisplayAlerts = false;
xl.Quit();
Marshal.ReleaseComObject(xl);
}
}
它的工作原理!這太瘋狂了,我永遠也找不到那個謝謝。另外上面的鏈接是不正確的,你可以找到這裏描述的文章:http://social.msdn.microsoft.com/Forums/en-US/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91 – Kelly 2009-11-05 15:16:45
你也可以需要爲驅動服務器上的Office自動化的用戶帳戶禁用UAC - 這對我來說是最後的結局。 – 2011-02-15 22:52:35
我跟着沒有爲我工作的解決方案。我對爲我工作的「Microsoft Excel應用程序」的dcom標識做了一些更改。我已將身份更改爲「此用戶」並提供了管理員帳戶憑據。這對我來說工作得很好,我們的Sharepoint Webpart開始按照它應該的方式工作。 – 2011-02-15 22:52:52