سؤال

مربع DEV الخاص بي هو جهاز Windows 7 (x64). لقد حصلت على بعض التعليمات البرمجية (C#، .NET 2.0) في ظروف معينة ، تتحقق لمعرفة ما إذا كانت الخدمة تعمل ثم توقفها.

ServiceController matchedService = //My Service!

//If statements and such

matchedService.Stop();
matchedService.WaitForStatus(ServiceControllerStatus.Stopped);

الآن ، يمكنني التحقق من أن myservice مثبت وتشغيله. أستطيع أن أخبرك أنني أدير Visual Studio 2008 كمسؤول أثناء التصحيح. يمكنني أيضًا التحقق من ذلك بعد اثنين لو العبارات ، انتهى بي الأمر في جزء. stop () و .waitforstatus () من البرمجة. أعلم أنه إذا خطوة على مكالمة. stop () ، فإن الخدمة نفسها تستمر في الركض (النظر إليها خدمات, ، على الرغم من أن ذلك يحدث لي ، ربما يجب أن أحصل على أداة أفضل لهذا الغرض. أنا متأكد من أن هناك بعض أدوات sysinternals التي قد تعطيني المزيد من المعلومات). بينما أتجول في مكالمة .waitforstatus () ، انتهى الأمر بشكل أساسي بانتظار حالة توقف. . . مدى الحياة. حسنًا ، تركتها تجلس هناك لأكثر من 15 دقيقة أمس (مرتين) ولا يحدث شيء. نحن لا نصل إلى السطر التالي من التعليمات البرمجية. يبدو الأمر تمامًا مثل غرابة Bowie's Space (أنت تعرف الجزء الذي أتحدث عنه).

هناك أشياء لوتا حول myservice لا تعرف أي شيء عنها. الأشياء التي لن تفهمها. أشياء لم تستطع. . . اسمحوا لي أن ذكر هذا بوضوح. لا توجد خدمات تعتمد على myService ولا تعتمد MyService على أي خدمات أخرى. إضافة يبدو أن Myothervice و SonofMyService يتصرفان بشكل صحيح في هذه المرحلة من الكود. تشترك جميع هذه الخدمات في نفس الخصائص (إنها خدماتنا الخاصة التي فقسناها في مختبر سري وليس لدينا أي تبعيات). هل من الممكن أن يكون هناك خطأ ما في تثبيت MyService أو شيء من هذا القبيل؟

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

لماذا لا يتم إيقاف الخدمة؟ هل هذا غريب من Win 7؟ فشل من جانبي لفهم ServiceController ، أو الفوز بالخدمات بشكل عام؟

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

المحلول

بعد مزيد من التحقيق ، أعتقد أن هذه مشكلة في الخدمة نفسها.

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