Блокирующий файл для записи из Windows Service
-
27-09-2019 - |
Вопрос
Я хочу заблокировать файл для записи из службы Windows, но до сих пор мои попытки получить замок не работают. Однако тот же код работает от приложения консоли.
Из того, что я прочитал, это потому, что оппортунистическая блокировка не включен для моего сервиса.
Как я могу предотвратить записать файл, заблокируя его от сервиса, не прибегая к взломам реестра?
Код для блокировки:
FileStream lockStream = new FileStream(path, FileMode.Open, FileAccess.Read);
Код для разблокировки:
lockStream.Close();
lockStream.Dispose();
Решение
using (fs = new FileStream("somefile.txt", FileMode.Open, FileAccess.Read, FileShare.None))
{ }
Вы использовали режим Fileshare, когда вы открываете файл для чтения или записи?
Другие советы
Использовать Global Mutex. быть очень осторожным, чтобы освободить его (наконец и т. Д.)
Не связан с StackOverflow