impossibile avviare il servizio personalizzato in caso di riavvio non pianificato sul server?

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

  •  19-08-2019
  •  | 
  •  

Domanda

Ho creato un servizio e ciò che fa è scrivere informazioni in un file XML.

A volte, sembra succedere soprattutto con il riavvio non pianificato, il servizio non può essere avviato perché il file utilizzato è "bloccato". Questo errore si verifica mentre il sistema è ancora in fase di avvio poiché il mio servizio è impostato su "avvio automatico".

Questo è su Windows 2003.

Qualcuno sa perché questo sta accadendo?

Grazie.

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) 
È stato utile?

Soluzione

Se il problema è causato dall'avvio del servizio troppo presto dopo un riavvio, perché non controllare per vedere l'ultimo tempo di riavvio e saltare l'esecuzione dell'attività fino a tanti minuti dopo il riavvio. System.Environment.TickCount ti darà il numero di millisecondi dall'ultimo avvio.

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

Altri suggerimenti

È possibile che il tuo servizio possa accedervi due volte, cercando di ottenere un blocco esclusivo ogni volta?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top