فشلت خدمة مخصصة لبدء عندما يكون هناك تمهيد غير مقرر أصلا في الخادم؟

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

  •  19-08-2019
  •  | 
  •  

سؤال

وأنا خلقت خدمة وما يفعله هو كتابة المعلومات في ملف xml.

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

وهذا هو تحت النوافذ عام 2003.

أحد يعرف لماذا يحدث هذا؟

وذلك بفضل.

The process cannot access the file 'D:\myService\eventlog.xml' because it is being used by another process.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at System.Xml.XmlTextWriter..ctor(String filename, Encoding encoding)
at System.Data.DataTable.WriteXml(String fileName, XmlWriteMode mode, Boolean writeHierarchy)
at System.Data.DataTable.WriteXml(String fileName)
at myService.c_control.addXmlLog(eventStatus timeStatus) 
هل كانت مفيدة؟

المحلول

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

http://msdn.microsoft.com/en -US / مكتبة / system.environment.tickcount.aspx

نصائح أخرى

هل من الممكن أن الخدمة يمكن الوصول إلى هذا مرتين، في محاولة للحصول على تأمين حصري على أنه في كل مرة؟

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