استكشاف أخطاء استثناء NullReference وإصلاحها في الخدمة

StackOverflow https://stackoverflow.com/questions/48574

سؤال

لدي خدمة Windows التي تدير عمليات مراقبة النظام المختلفة.ومع ذلك، عند تشغيل عمليات التحقق ذات الصلة بـ SNMP، أحصل دائمًا على استثناء NullReference.يعمل الرمز بشكل جيد عند تشغيله من خلال واجهة المستخدم (تحت اسم المستخدم وكلمة المرور الخاصين بي)، ولكن دائمًا ما تكون هناك أخطاء أثناء تشغيله كخدمة.لقد حاولت تشغيل الخدمة كحسابات مستخدمين مختلفة (بما في ذلك حساباتي)، ولكن دون جدوى.لقد حاولت استبدال رمز مراقبة SNMP باستدعاء PowerShell cmdlet get-snmp (من /n NetCmdlets)، ولكن هذا يؤدي إلى نفس الخطأ.

التطبيق الذي أعمل معه هو بوليمون.

أيه أفكار؟

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

المحلول

بعض طرق التصحيح:

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

بعض مقتطفات التعليمات البرمجية/تتبع المكدس/المعلومات ستساعد بالتأكيد.

نصائح أخرى

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

لقد رأينا بعض الأشياء - المزيد عن الاختلافات بين الخدمات التفاعلية مقابل الخدمات، ولكنها قد تساعد...

هناك شيء واحد رأيناه ولا يبدو ذا صلة وهو الاختلاف عما هو موجود في مسار المستخدم مقابل النظام.

شيء آخر رأيناه يتعلق بالملفات المؤقتة - الخدمة التي كانت لدينا هي إنشاء الكثير في الدليل windows emp - لقد تتبعنا هذا عندما أنشأنا ما يقرب من 65000 من هذه الملفات وبالتالي وصلنا إلى الحد الأقصى لما يمكن للدليل الاحتفاظ به ...

التحيات ، كريس

لقد تناولت هذا النوع من المشكلات من قبل، إذا لم تجد الإجابة بالفعل، أقترح عليك ما يلي:

  • قم بتمكين التتبع/تسجيل الدخول في جميع تطبيقات ومكتبات الطرف الثالث التي تستخدمها بحيث يتم تسجيل الأخطاء في الملفات بدلاً من stdout أو stderr.في كثير من الأحيان، سوف تجد دليلا من هذه.
  • ربما تعتمد خدمة Windows لديك على إعداد بعض شبكات Windows قبل بدء التشغيل.قد يكون هذا بسبب البيئة (PATH، كما اقترح الآخرون) أو بسبب "التبعيات" على الخدمات الأخرى.

جاي..........

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