سؤال

كيف يمكنني استخدام ServiceController لإخبارنا إذا كانت الخدمة قد تم تسجيلها أم لا؟ في جزء الكود أدناه ، ينتج عن فحص اسم العرض الخالي في نظام. invalidoperationException.

هل هناك طريقة واضحة للقيام بذلك وأنا في عداد المفقودين تمامًا؟

ServiceController sc = new ServiceController("TestService");

if (sc.DisplayName == null)
{
     // unregistered or missing service
}
هل كانت مفيدة؟

المحلول

انظر إلى الحل أدناه ... لا يبدو أنه يمكنك ...

من مستندات:

يمكنك استخدام فئة ServiceController للاتصال بسلوك الخدمات الحالية والتحكم فيها.

التي تقرأ مثل الخدمات يجب أن يتم تسجيلها بالفعل من أجل أن يعمل ServiceController معهم.

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

المحلول:

يستخدم

var services = ServiceController.GetServices(machineName)

وابحث في الصفيف عن الخدمات اللازمة. إذا كنت تعمل فقط على صندوقك المحلي ، فيمكنك حذف machineName جدال.

http://msdn.microsoft.com/en-us/library/s21fd6th.aspx

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