File.Delete удаляет файл, по-прежнему выбрасывает UnauthorizedAccessException - PullRequest
0 голосов
/ 07 декабря 2011

В моем веб-приложении, размещенном в пуле приложений ASP.NET v4.0 в IIS 7.5, при удалении файла, который находится в так называемом физическом пути приложения (HostingEnvironment.ApplicationPhysicalPath), файл удаляется, но тем не менее выдается исключение UnauthorizedAccessException.

Я попытался предоставить все разрешения в этом каталоге всем пользователям (пользователю «Все», пользователю «ASP.NET v4.0», который должен иметь значение в IIS 7.5, пользователю «СЕТЬ»). СЕРВИС ", ...), безрезультатно.

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

Как я могу это исправить?

Или для веб-приложения считается плохой практикой удалять файл из физического пути (даже если он помещает его туда в первую очередь, в моем случае это файл журнала)?

Обновление Тем временем я обошел его, используя подкаталог для моих файлов журналов, что в любом случае имеет смысл, но я все еще интересуюсь, почему произошло это исключение и есть ли исправление.

1 Ответ

0 голосов
/ 07 декабря 2011

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

Если он работает после того, как вы установили разрешение для всех, проверьте, под какой учетной записью запущен пул приложений, и попробуйте предоставить разрешения этой учетной записи.

...