Pregunta

Quiero bloquear un archivo para la escritura de un servicio de Windows, pero hasta ahora mis intentos de obtener un bloqueo no están funcionando. El mismo código funciona desde una aplicación de consola, sin embargo.

Por lo que he leído, esto se debe a oportunista bloqueo no está habilitada para mi servicio .

¿Cómo puedo evitar que un archivo sea escrito a bloqueándolo de un servicio sin tener que recurrir a los cortes de registro?

Código de bloqueo:

FileStream lockStream = new FileStream(path, FileMode.Open, FileAccess.Read);

El código para desbloquear:

lockStream.Close();
lockStream.Dispose();
¿Fue útil?

Solución

  using (fs = new FileStream("somefile.txt", FileMode.Open, FileAccess.Read, FileShare.None))
  { }

¿Ha utilizado el modo FileShare al abrir el archivo para leer o escribir?

Otros consejos

Utilice un Global objeto mutex ser muy cuidadosos para liberarlo (Finalmente, etc.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top