2011-01-10 16 views
5

Basit bir vb.net uygulamasına sahibim. Ben bin \ debug \ program.exe gidiyorum ve çift tıklayın program mükemmel çalışır. Aynı program görev zamanlayıcı kullanılarak yürütülmeyecektir. Zamanlanmış bir görev oluşturduğumda ve 'çalıştır' seçeneğini tıkladığında, bir saniye için bir konsol penceresi açılır, kapanır. Ayrıca, bu aynı program görev zamanlayıcı ile çalıştırmak için kullanılır. Bir gün, sadece çalışmayı bıraktı.Zamanlanmış Görev son dönüş sonucu olarak e0434f4d döndürmez.

ps:
Ben bu yüzden güvenle kod değişmedi söyleyebiliriz svn yönetilen bu program kodu var.

+0

Mümkünse, aynı uygulamayı farklı bir makinede çalıştırmayı denediniz mi? Programınızın yönetici haklarına ihtiyacı var mı? Program ne yapar? İşletim Sisteminiz nedir (Vista, Win 7)? Bize daha fazla detay verebilir misiniz? Konumu, çalışma metin kutusuna tekrar gönderen – Searock

+0

sorunu çözdü. Bunu test ettim ve eğer var olmayan bir dosyaya işaret eden bir görev oluşturursanız, bir 'mesaj başlatamazsınız'. Yani, aldığım hata kodunu nasıl aldığımı bilmiyorum. –

cevap

3

Şahsen ben

  1. kaynak kodu çalışan sürümüne karşılaştırarak değiştirilmiş olmadığını tekrar kontrol edin sihirli :-) inanmıyorum.
  2. Programın hiç yürütülmediğinden emin misiniz? Bazı izinlerle ilgili sorunlar olabilir (kullanıcının hangi programı çalıştırdığı vb.).
  3. (# 2 geçişi varsa) Sorunun nedenini görmek için hata ayıklamayı deneyin.
+0

1. Çifte kontrol yaptım. Her zaman iyi bir fikir.
2. Programı f5 hata ayıklamasını kullanarak çalıştırın, düzgün çalıştı
3. Sürümü düzgün çalıştıran bin \ debug klasöründen çıktı.
4. yeniden-re-re yeniden ve Windows Gezgini'nden çalıştırma komutu görev çalıştırma özelliklerine .... sabitlenmiş. –

+0

.. ve işte bu yüzden siz (her zaman) her şeyi kontrol etmelisiniz. –

17

0xe0434f4d çıkış kodu oldukça anlamlı. Bu, yönetilen bir istisna için yerel istisna kodudur. Başka bir deyişle, uygulamanız görev yöneticisi tarafından çalıştırıldığında işlenmeyen bir istisna ile çakılıyor. Sebepleri neden tahmin edebilirim, ama oldukça anlamsız. Kendiniz öğrenin, AppDomain.CurrentDomain.UnhandledException için bir olay işleyici yazın ve e.ExceptionObject.ToString() değerini kaydedin. Bu size istisna mesajını ve yığın izini verir, neredeyse her zaman bombalamanın nedenini bulmak için yeterince iyidir.

0

Zamanlanmış görevin hangi kullanıcının altında çalıştığını görmek için denetlerim. Bu belki de parola süresi dolmuş bir hesapla çalışıyor (daha önce çalıştığınızı söylediğiniz gibi) ve bunun değiştirilmesini gerektirir.

1

Aslında bu sorun izinlerden kaynaklandı. Zamanlanmış bir görev olarak, işin belirli klasörlere ve dosyalara yönelik izinleri yoktu.

0

Windows 2000 ve Windows XP'de belirli zamanlanmış görevlerle dikkat ettiğim bir şey, makinenin her yeniden başlatılışında, bazı görevler için parolayı yeniden girmemiz gerektiğidir. Diğerleri onsuz çalışmaya devam ediyor ve ben bu farkı hiç tanımlamamıştım.

İlgili konular