2009-11-04 4 views
9

Mam małą aplikację .NET, którą uruchamiam pod Windows 2008 Server za pomocą Harmonogramu zadań. Ta aplikacja musi otworzyć plik Excela, a następnie zapisać go jako plik CSV. Zadanie kończy się niepowodzeniem, gdy próbuję otworzyć skoroszyt. Jeśli uruchomię go ręcznie bez uruchamiania programu do planowania zadań, aplikacja będzie działać poprawnie.Jak uruchomić zadanie Windows 2008 z programu planującego za pomocą "interakcji z pulpitem"

Mam to ustawione na "Uruchom z najwyższymi uprawnieniami" i zaznacz "Uruchom użytkownika pogody jest zalogowany lub nie".

Domyślam się, że ten proces wymaga interakcji z komputerem, podobnie jak zaznaczenie flagi "interakcja z komputerem" w usłudze. Ale nie byłem w stanie znaleźć czegoś podobnego do zaplanowanych zadań.

Oto kod, który się niepowodzeniem (nie jest on na workbook.open rozmowy)

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);     
    } 

} 

Odpowiedz

8

miałem problemy automatyzacji Office z usługi Windows pod Windows Server 2008, mimo że działa dobrze pod Windows Server 2003. Problem występuje także w wywołaniu Open, więc może to być ten sam problem.

Próbowałem postępować zgodnie z poradą udzieloną przez H Ogawa w this MSDN thread, i wydawało się, że działa. To dziwne, ale dla pana Ogawy za odkrycie.

Podsumowanie 'Ogawa Hack': utworzyć folder na pulpicie dla profilu systemowego, albo jako

C:\Windows\SysWOW64\config\systemprofile\Desktop lub

C:\Windows\System32\config\systemprofile\Desktop

... w zależności od tego, czy masz 64-bitowy Windows.

Ponadto folder wymaga uprawnień do zapisu dla dowolnego użytkownika, który "prowadzi" biuro.

[Edytuj: poprawiony URL linku]

+1

Działa! To szalone, nigdy bym tego nie znalazł. Również powyższy link jest niepoprawny, możesz znaleźć artykuł opisany tutaj: http://social.msdn.microsoft.com/Forums/en-US/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91 – Kelly

+0

Możesz również trzeba wyłączyć UAC dla konta użytkownika sterującego automatyką Office na serwerze - to było dla mnie ostateczne załamanie. –

+0

Podążyłem za rozwiązaniami, które nie sprawdziły się u mnie. Wprowadziłem kilka zmian w tożsamości Dcom "aplikacji Microsoft Excel", która zadziałała dla mnie. Zmieniłem tożsamość na "Ten użytkownik" i podałem dane uwierzytelniające konta administratora. To działało dobrze dla mnie i nasza Sharepoint Webpart zaczęła działać tak, jak powinna. –

Powiązane problemy