Singleton compact Logger для приложений ASP.NET - PullRequest
0 голосов
/ 23 мая 2011

Я кодировал Singeton компактный регистратор, который очень удобен для ASP.NET приложений.Просто сделав ссылку, а затем Logger.Log.Info("Hello world!");.Он также автоматически регистрирует необработанные исключения.

Иногда я получаю сообщение об ошибке при попытке создать файл журнала Stream.

Исключение составляет:

Процессне удается получить доступ к файлу 'C: \ inetpub \ wwwroot \ MyApp \ Logs \ 5-22-2011.log', поскольку он используется другим процессом.

Я проверил с помощью Process Explorer и толькоw3wp.exe имеет дескриптор файла журнала.Кажется, разные темы сделали проблему.Это происходит примерно каждые 24 часа!

1 Ответ

1 голос
/ 10 июня 2011

Если это происходит периодически, вы можете проверить настройки IIS и посмотреть, перерабатывается ли пул приложений с 24-часовыми интервалами.(Я думаю, из памяти по умолчанию 29h)

Если это так, ваша проблема может быть вызвана тем, что IIS «раскручивает» новый пул приложений, в то время как старый все еще обрабатывает запросы (пересекающаяся переработка - чтоэто поведение по умолчанию), т. е. новый регистратор пытается создать экземпляр в новом процессе до того, как у старого будет вызван деструктор.

Редактировать: Забыл упомянуть (было поздно, когда я писал ответ),что один из способов смягчить это - изменить имя файла журнала, указав полную дату и время.

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