blocco dei file per la scrittura da Windows Service
-
27-09-2019 - |
Domanda
voglio bloccare un file per la scrittura da un servizio di Windows, ma finora i miei tentativi di ottenere un blocco non funzionano. Lo stesso codice funziona da un'applicazione console, però.
Da quello che ho letto, questo è perché opportunistica bloccaggio non è abilitato per il mio servizio .
Come posso impedire che un file venga scritto bloccandolo da un servizio senza ricorrere a hack del Registro di sistema?
Codice di blocco:
FileStream lockStream = new FileStream(path, FileMode.Open, FileAccess.Read);
codice per sbloccare:
lockStream.Close();
lockStream.Dispose();
Soluzione
using (fs = new FileStream("somefile.txt", FileMode.Open, FileAccess.Read, FileShare.None))
{ }
Hai usato la modalità FileShare quando si apre il file per la lettura o la scrittura?
Altri suggerimenti
Usa un globale Mutex essere molto attenti a rilasciarlo (Infine, ecc.)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow