Diskuze: Spuštění exe souboru přes plánovač úloh Windows

C# .NET .NET (C# a Visual Basic) Spuštění exe souboru přes plánovač úloh Windows American English version English version

Avatar
Honza
Člen
Avatar
Honza:

Ahoj, mám problém se spouštěním exe souboru přes plánovač úloh. Problém působí Excel se kterým v aplikaci pak dále pracuji.

Pokud spustím exe ručně, vše je ok. Pokud ho spustím přes plánovač úloh, aplikace začne padat na řádku kde se snažím excel otevřít (ExcelApplica­tion.Workbook­s.Open).

Přitom úlohu v plánovači úloh spouštím pod svým účtem a s nejvyšším oprávněním. Tento problém jsem zaznamenal až při přechodu na 64 bit windows.

Mám:

  • Win 7 64 bit
  • Aplikace je zkompilovaná jako x86
  • Office jsou x86
  • Reference na office: Microsoft.Offi­ce.Interop.Ex­cel

Nesetkal jste se někdo s podobným problémem

Děkuji

Odpovědět 13.8.2014 12:14
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
Odpovídá na Honza
Michal Žůrek (misaz):

s problémem jsem se nesetkal, co to háže za vyjímku?

Nahoru Odpovědět 13.8.2014 12:19
Nesnáším {}, proto se jim vyhýbám.
Avatar
Honza
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
Honza:

Dostávám tuto vyjímku:

Aplikace Microsoft Excel nemůže získat přístup k souboru <cesta k souboru>\Templa­te.xlt. Možné příčiny jsou následující:

• Název souboru nebo cesta neexistuje.
• Soubor je používán v jiném programu.
• Sešit, který chcete uložit, má stejný název jako aktuálně otevřený sešit.

Tento popis chyby je ale zvláštní, cesta existuje a soubor není otevřený ani používaný. Když exe spustím ručně tak to funguje.

Nahoru Odpovědět 13.8.2014 12:59
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
Odpovídá na Honza
Luboš Běhounek (Satik):

Cestu k tomu souboru zadáváš relativně?
Pokud ano, tak to by mohl být ten problém - nech si vypsat celou cestu, kam opravdu šaháš - přes Path.GetFullPath().
Problém by mohlo být to, že při spouštění přes plánovač je třeba jiný pracovní adresář.

Editováno 13.8.2014 13:16
Nahoru Odpovědět  +2 13.8.2014 13:13
:)
Avatar
Honza
Člen
Avatar
Odpovídá na Luboš Běhounek (Satik)
Honza:

Právě že ne, na tento problém jsem už taky narazil (u plánovače a služeb je cesta jiná), takže je zadaná absolutně. Když se přes Visual Studio přípojím k procesu který spustím přes plánovač a odkrokuju si kód, cesta je správná, ale spadne to na funkci Workbooks.Open

Nahoru Odpovědět 13.8.2014 15:29
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
Odpovídá na Honza
Michal Žůrek (misaz):

ten otevíraný soubor se jmenuje Template.xlt nebo excel nemůže otevřít svoji stylovou šablonu?

Nahoru Odpovědět 13.8.2014 15:51
Nesnáším {}, proto se jim vyhýbám.
Avatar
Honza
Člen
Avatar
Honza:

Template.xlt je název mého souboru

Nahoru Odpovědět 13.8.2014 23:09
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
coells
Redaktor
Avatar
Odpovídá na Honza
coells:

Řešení najdeš tady http://blogs.msdn.com/…om-ssis.aspx

Nicméně, ještě zajímavější popis je tady http://stackoverflow.com/…s-excel-file pod Considerations for server-side Automation of Office. V podstatě bys neměl využívat služby Office bez interaktivního desktopu a jakákoliv neočekávaná situace vyústí v zamrznutí vlákna.

 
Nahoru Odpovědět  +2 13.8.2014 23:20
Avatar
Honza
Člen
Avatar
Odpovídá na coells
Honza:

Díky moc, pomohlo to. Stačilo vytvořit složku desktop na adrese C:\Windows\sys­tem32\config\sys­temprofile\des­ktop

Problém byl v tom, že tato složka byla vytvořena pouze pro 64 bit a Office jsou 32 bit.

Jinak vím že není ideální používat Office takovýmto způsobem. Ve velké aplikaci bych to nepoužil, ale tohle je jen služba kterou jsem si napsal aby mi trochu šetřila práci.

Každopádně děkuju

Nahoru Odpovědět 14.8.2014 8:52
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.