benutzerdefinierter Dienst nicht gestartet werden, wenn es ein ungeplanter Neustart auf dem Server?

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

  •  19-08-2019
  •  | 
  •  

Frage

habe ich einen Service und was es tut, um Informationen in eine XML-Datei zu schreiben.

Manchmal scheint es meist mit ungeplantem Neustart geschehen, kann der Dienst nicht gestartet werden, da die Datei verwendet wird „gesperrt“. Dieser Fehler passiert, während das System hochgefahren wird, da mein Dienst „Auto-Start“ gesetzt ist.

Dies ist unter Windows 2003.

Wer weiß, warum dies geschieht?

Dank.

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) 
War es hilfreich?

Lösung

Wenn das Problem durch den Dienst starten zu früh nach einem Neustart verursacht wird, warum nicht überprüfen Sie die letzte Neustart Zeit zu sehen und überspringen, bis so viele Minuten nach dem Neustart der Aufgabe ausgeführt wird. System.Environment.TickCount geben Sie die Anzahl der Millisekunden seit dem letzten Boot-Zeit.

http://msdn.microsoft.com/en -US / library / system.environment.tickcount.aspx

Andere Tipps

Ist es möglich, dass Sie da dies den Zugriff auf zweimal werden konnte, die versuchen, auf sie jedes Mal eine exklusive Sperre zu bekommen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top