Принудительно закрыть файл для копирования - PullRequest
1 голос
/ 17 ноября 2010

У меня есть веб-приложение, которое записывает данные в файл каждый интервал, скажем, 10 минут.

У меня есть другое консольное приложение, которое читает файл и что-то делает с данными.

Проблема в том, что иногда файл устаревает и используется веб-приложением, когда консольное приложение пытается его скопировать. Что вызывает ошибку, ошибка блокировки.

У меня есть два вопроса, как заставить файл закрыться из другой программы, а не на той же машине?

Другой вопрос, связанный с веб-приложением, скажем, какое-то время нет запроса на сервер, файл никогда не закрывается. Как я могу убедиться, что через некоторое время файл закрыт? фоновый поток таймера?

РЕДАКТИРОВАТЬ: ОС является сервером Windows 2003.

есть предложения?

1 Ответ

0 голосов
/ 17 ноября 2010

Если ваша программа «что-то делает с данными» на самом деле не изменяет файл, вы можете открыть его только для чтения и избежать всей ситуации блокировки.Вам нужен доступ для записи?

Вы можете отслеживать свои сеансы, написав функцию подсчета сеансов.Когда количество сеансов достигнет нуля, вы можете закрыть файл.Было бы полезно, если бы вы дали нам больше информации о том, что именно вы пытаетесь сделать, чтобы мы знали ход выполнения программы.

Используйте Session_Start и Session_OnEnd для отслеживания сеансов.На этом сайте есть хорошая статья о том, как отслеживать сессии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...