2009-05-14 11 views
6

Podczas wdrażania naszej aplikacji .net mam około 20 zaplanowanych zadań skonfigurowanych na serwerze, z których wszystkie robią to samo: wywołaj małą aplikację konsolową .net pobierającą dane z bazy danych SQL i opublikuj go w serwisie internetowym. Każde zadanie wywołuje osobną kopię aplikacji, każda kopia ma inną wartość identyfikatora wyszukiwania w swoim pliku konfiguracyjnym.Jak rozwiązywać problemy z Zaplanowanym zadaniem systemu Windows nie działa?

Wszystkie z tych dwóch zadań działają niezawodnie każdej nocy. Dwa zadania wydają się sporadycznie przestać działać od czasu do czasu, a obecnie jest tajemnicą, dlaczego. Gdy przestaną działać, zaplanowany interfejs zadań poprawnie pokazuje ich ostatnią datę uruchomienia, która jest dzień lub więcej za innymi zadaniami, które nadal działały w zaplanowanym czasie. Zadania, które przestały działać, nie uruchamiają się same, pomimo tego, że zostały zaplanowane co noc. W dzienniku zdarzeń lub w interfejsie zaplanowanego zadania nie ma żadnych błędów. A oto najdziwniejsza część dla nas: Jeśli ręcznie uruchomię zaplanowane zadanie, działa dobrze, wywołuje aplikację konsoli .net i wszystko kończy się bez anomalii. A potem nadal działa dobrze w zaplanowanym czasie, przez kilka dni lub tygodni, tylko po to, by ostatecznie zawieść, pozornie nie na miejscu. Wygląda na to, że oba zadania zawsze kończą się niepowodzeniem tej samej nocy.

+1

Myślę, że odpowiedź na to pytanie http://stackoverflow.com/questions/32589381/ może również pomóc niektórym osobom, dlaczego zadania uruchamiane ręcznie nie zawsze działają zgodnie z harmonogramem. (Ale od sposobu, w jaki oba zostały opisane, nie są to duplikaty pytań.) Podsumowanie: Zaplanowane zadania Windows 2012 nie zawsze wyświetlają poprawne zmienne środowiskowe, w tym 'PATH', dla konta, dla którego ustawione jest uruchamianie zadania; w rzeczywistości widzą tylko poprawny zestaw zmiennych, podczas gdy użytkownik zadania jest rzeczywiście zalogowany. –

Odpowiedz

7

Istnieje kolumna "Ostatni wynik", która powinna dostarczyć kod związany z samym uruchomionym zadaniem (nie będzie żadnych danych o wyjątku). 0 oznacza wykonanie zadania bez błędów. Cokolwiek jeszcze możesz sprawdzić i zobaczyć, dlaczego zadanie się nie rozpocznie. Jeśli zadanie nadal nie działa, ale nadal widać 0 dla Ostatniego wyniku, oznacza to, że w Twoim kodzie jest coś uszkodzonego, ale z przyjemnością wychodzi.

0

Może wisiały i nadal działały?

Można kliknąć na extras-menu i wybrać pozycję menu, aby wyświetlić dziennik, a następnie schowek otworzy plik dziennika z planowania zadań

1

Jednym z powodów, dla Zaplanowane zadania nie działa występuje, gdy kojarzenie ich z konto użytkownika Windows bez hasła: domyślnie Zaplanowane zadania nie mogą być uruchomione z pustym hasłem. Jeśli chcesz uruchomić zaplanowane zadanie z konta bez hasła trzeba wyłączyć zmienną systemową:

  • Przejdź do: Start> Narzędzia administracyjne> Ustawienia lokalne Polityka> Zabezpieczenia> Zasady lokalne> Opcje zabezpieczeń
  • wybierz: „konta: ogranicz używanie lokalnych pustych haseł przez konta logowania do konsoli tylko”
  • Wyłącz ta zmienna

Zastrzeżenie: its nie zaleca się mieć konta bez hasła.

3

Taskscheduler zakłada na 64 bitowych systemach, które w tej aplikacji wynosi 64 bitów. Jeśli jest 32-bitowy, uruchom go z 32-bitowej linii poleceń, tzn. Jeśli chcesz uruchomić c: \ program files (x86) \ Myprogram \ Program.exe, aby uruchomić powiedzieć taskscheduler:

  • % systemroot% \ syswow64 \ cmd.exe/C "c: Files \ programowe (x86) \ myprogram \ Program.exe"

To zmusza go do uruchom z 32-bitowego wiersza poleceń, a więc z 32-bitową emulacją.

+0

Dzięki, myślę, że rozwiązana cisza. – fatihpense

3

Czy ustawiono właściwość "Rozpocznij w"?

Jeśli te aplikacje konsoli .NET wymagają pliku app.config lub niektórych plików umieszczonych w ich ścieżce, musisz ustawić właściwość "Rozpocznij w" na "c: \ twoja \ aplikacja \ ścieżka \", w przeciwnym razie zaczynają się tak, jakby były w katalogu systemowym, a oni nie mogą znaleźć pliki potrzebne!

0

odpowiedź na poniżej SO pytanie może być również bardzo istotne dla ludzi czytających to pytanie (ale, Nb, opisuje tylko jeden możliwie konkretny problem z Zaplanowany Zadania i uważam, że żadne z tych pytań nie jest duplikatem drugiego):

Why is my Scheduled Task updating its 'Last Run Time' correctly, and giving a 'Last Run Result' of '(0x0)', but still not actually working?

Podsumowanie odpowiedzi na to inne pytanie jest takie, że Zaplanowane zadania systemu Windows 2012 nie wyświetlają poprawnych zmiennych środowiskowych, w tym PATH, dla konta, dla którego ustawione jest uruchamianie zadania.

W kategoriach bardziej ogólnych usterek zaplanowanego zadania (jak poprosił o tej kwestii), można przetestować dla tej konkretnej kwestii (np uruchomiony SET > test.txt w zadaniu, jak zasugerowano w tej odpowiedzi), a raz widać, że dzieje , możesz obejść to, jeśli ma na ciebie wpływ.

0

W moim przypadku zaplanowane zadanie nie uruchomiłoby się mimo, że ostatnie uruchomienie zakończyło się pomyślnie (0). Okazało się, że konto użytkownika systemu Windows, które uruchamiało zadania, zostało zablokowane. Zdałem sobie z tego sprawę, ponieważ próbowałem edytować istniejące zaplanowane zadanie, ustawić konto użytkownika na to samo, a następnie nacisnąć OK, co spowodowało błąd w związku z zablokowaniem konta.

Powiązane problemy