سؤال

ولدي العديد من التطبيقات ج # عامل المختلفة التي تعمل مختلف المهام مستمرة: إرسال رسائل البريد الإلكتروني من قائمة الانتظار، واستيراد الطلبيات الجديدة من قاعدة بيانات على شبكة الإنترنت لقاعدة بيانات أوامر، مما يجعل قاعدة بيانات النسخ الاحتياطي والاستعادة، تشغيل معالجة البيانات لOLTP -> OLAP، وغيرها من المهام ذات الصلة . من قبل، وإطلاق سراح هؤلاء عن الخدمات النوافذ، ولكن في الوقت الراهن أنا تطلق سراحهم في تطبيقات وحدة التحكم العادية. كلها تقوم على إطار عداء المهمة المشتركة التي أنشأتها، وأنا سعيد بذلك، ولكن أنا لست متأكدا ما هو أفضل وسيلة لنشر هذه الأنواع من التطبيقات. أنا أحب إصدار وحدة التحكم لأنها سريعة وسهلة، وأنه من الممكن أن نرى بسرعة برنامج النشاط والمخرجات. الجانب السلبي هو أن الكمبيوتر عامل لديها العديد من الشاشات وحدة تشغيل وأنها تحصل على الفوضى. من ناحية أخرى يبدو أن أسلوب خدمة اتخاذها لفترة طويلة لنشر ولدي للذهاب من خلال سجلات الأحداث لمعرفة الرسائل. ما هي بعض التجارب / تعليقات على هذا؟

هل كانت مفيدة؟

المحلول

وأنا أحب نهج التطبيق وحدة التحكم. أنا عادة قد وضعت الامور حتى أتمكن من تمرير التبديل مثل -unattended أن يقمع الشاشة وحدة التحكم.

نصائح أخرى

وخدمة ويندوز سيكون خيارا جيدا، فإنه يعمل في الخلفية بغض النظر عن إذا قمت بإغلاق الدورة الحالية، كما يمكنك تكوينه لبدء تلقائيا بعد إعادة تشغيل Windows عند إجراء تحديث بقع على الخادم. يمكنك تسجيل الرسائل الهامة إلى عارض الأحداث أو جدول قاعدة البيانات.

لشيء من هذا القبيل، والطريقة القياسية للقيام بذلك هي مع خدمات ويندوز. تريد خدمة لتشغيل على حساب الشبكة لذلك لن يتطلب قاموا بتسجيل الدخول.

وعملت على شيء قبل بضع سنوات التي كانت قضايا مماثلة. منطقيا أنا في حاجة إلى الخدمة، ولكن في بعض الأحيان كنت بحاجة لمعرفة ما كان يحدث، وعموما كنت أرغب في التاريخ. لذلك أنا وضعت الخدمة التي فعلت العمل، في أي وقت أرادت تسجيل الدخول، فإنه دعا إلى انها المشتركين (كما نفذت نمط مراقب).

والخدمة المسجلة هو نفسه المسجل البيانات (كتابة على قاعدة بيانات) وفي وقت التشغيل، يمكن للمستخدم تشغيل واجهة المستخدم الرسومية التي تتصل الخدمة باستخدام الاتصال عن بعد ليصبح المستمع يعيش!

وانا ذاهب الى التصويت لخدمات Windows. انها سوف تحصل على أن يكون الألم الحقيقي إدارة تلك التطبيقات وحدة التحكم.

ونشر خدمة ويندوز سهل: بعد تثبيت الأولي، يمكنك فقط إيقاف تشغيلها والقيام XCOPY. لا حاجة لتشغيل أي التركيب معقدة. انها فقط شبه معقدة في المرة الأولى، وحتى ذلك الحين انها مجرد

installutil MyApp.exe

وConfigre الخدمات التي تعمل تحت حساب المجال للأمن أفضل وأسهل إمكانية التشغيل المتداخل مع أجهزة أخرى.

استخدم مزيجا من سجلات الأحداث (مع خطأ، تحذير، ومعلومات) عن الإخطارات الهامة، ومجرد تفريغ التسجيل المطول إلى ملف نصي.

لماذا لا تحصل على أفضل من كل العالمين واستخدام شيء من هذا القبيل:
http://topshelf-project.com/

ووسوف تسمح لك لتشغيل البرنامج كما سطر الأوامر أو خدمة ويندوز.

ولست متأكدا إذا كان هذا ينطبق على التطبيقات الخاصة بك أو لا، ولكن عندما يكون لدي بعض تطبيقات وحدة التحكم التي لا تعتمد على إدخال المستخدم أو أنها هي نوع من التطبيقات التي مجرد القيام بعملهم والإقلاع عن التدخين، أركض مثل هذه البرامج على ملقم ظاهري، وبهذه الطريقة وأنا لا أرى شاشة ظهرت عندما أعمل، والملقمات الظاهرية من السهل إنشاء وإعادة تشغيل.

ونحن نستخدم بشكل منتظم خدمات ويندوز والعمليات الخلفية. أنا لا أحب تطبيقات سطر الأوامر كما تحتاج إلى أن تكون مسجلا في الخادم لهم لتشغيل. تشغيل الخدمات في الخلفية في كل وقت (على افتراض انهم لصناعة السيارات في بداية). لكنهم ايضا تافهة لتثبيت ث / أداة سطر الأوامر المساعدة SC.exe هذا في ويندوز. أنا أحب ذلك أفضل من سخام وير وهذا هو installutil.exe. بالطبع installutil لا أكثر، ولكن لا حاجة لي ما تقوم به. أريد فقط أن تسجل خدمة بلدي.

ولقد أنشأنا أيضا البنية التحتية حيث لدينا خدمة عامة exe الذي يحمل .DLLs على أساس تعريف واجهة، لذلك مضيفا "خدمة" جديدة غير بسيطة مثل إسقاط في DLL جديد وإعادة تشغيل خدمة المضيف.

ومع ذلك، بدأنا في الابتعاد عن الخدمات. المشكلة لدينا معهم هو أنها حبس دلس (لأسباب واضحة) لذلك هو الألم لالارتقاء بها. نحن بحاجة إلى التوقف، ورفع مستوى ومن ثم إعادة تشغيل. ليس من الصعب، ولكن خطوات إضافية. بدلا من ذلك نحن نسير إلى "الصفحات" خاصة في تطبيقات asp.net لدينا التي تعمل وظائف الخلفية الفعلية نحتاج القيام به. ما زال هناك خدمة، ولكن كل ذلك أنها لا تحتج صفحات asp.net حتى لا حبس أي من دلس لدينا. ثم يمكننا أن تحل محل دلس في الدليل asp.net بن وقواعد asp.net طبيعية لإعادة تشغيل التطبيق ركلة المجال في.

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