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

У меня есть одноэлементный регистратор, который используется внутри приложения ASP.NET.Иногда я получаю The process cannot access the file ошибку в этой строке:

StreamWriter sw = new StreamWriter("Path to log file", true);

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

Я использовал lock вокруг кода выше, но все равно я получаю сообщение об ошибке.Как я могу убедиться, что все потоки могут безопасно использовать один и тот же поток?

1 Ответ

0 голосов
/ 23 мая 2011

Не открывайте файл журнала более одного раза; просто открывайте его при запуске приложения, закрывайте при выходе (и часто очищайте его). Открытие и закрытие более одного раза просто неэффективно.

...