سؤال

لا بد لي من تطوير تطبيق باستخدام C#.net ويجب تشغيله مرة واحدة يوميًا.يتم تشغيله لمدة دقيقة واحدة على الأكثر، لذا فإن تطوير خدمة Windows يعد أمرًا مبالغًا فيه والمهمة المجدولة هي الطريقة المناسبة.

ومع ذلك، لدي بعض الأسئلة حول كيفية توصيل التطبيق لنتائجه:

  • كيف يمكنني الإشارة إلى برنامج جدولة المهام بأن المهمة قد فشلت؟هل هذا عن طريق كود الخروج الخاص بالبرنامج؟
  • كيف يمكنني تسجيل معلومات الإخراج؟هل يتم التقاط مخرجات وحدة التحكم تلقائيًا أم يجب علي الكتابة إلى عارض الأحداث بشكل صريح؟
هل كانت مفيدة؟

المحلول

ردا على أسئلتك -

  1. إذا فشلت مهمة لأنها طرحت استثناءً لم يتم تحديده، فسترى أنه في عارض المهام Sheduled، ستكون هناك "النتيجة الأخيرة" بقيمة مثل 0xe0434f4d.وبدلاً من ذلك، إذا قمت بإرجاع رمز الخروج الذي سيتم عرضه أيضًا في عمود النتيجة الأخيرة في عارض المهام المجدولة.

  2. الكتابة إلى وحدة التحكم على سبيل المثال. Console.WriteLine("blah"); لن تظهر في أي مكان.ستحتاج إلى الكتابة إلى سجل الأحداث أو إلى ملف سجل.

نصائح أخرى

إذا ذهبت ملف تسجيل الطريقة، لا يزال بإمكانك استخدامها Console.WriteLine("blah");.الحيلة هي إعادة توجيه المعيار خارج و خطأ تيارات:

        StreamWriter mylog = new StreamWriter("mylog.log");
        Console.SetOut(mylog);
        Console.SetError(mylog);

تحتاج أيضًا إلى مسح المخازن المؤقتة بشكل متكرر، للتأكد من أن ملف السجل يحتوي على المعلومات الحالية.

            Console.Out.Flush();

هذا سريع وقذر، يجب عليك حقًا استخدام سجل أحداث ويندوز أو log4net.

AFAIK يبدأ المجدول العملية للتو.يمكنك استخدام سجل الأحداث أو نظام تسجيل آخر لتسجيل المعلومات التي تحتاج إلى الرجوع إليها لاحقًا.

Log4net هو إطار تسجيل جيد جدًا وكامل.يمكنني أن أوصي به بشدة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top