Несанкционированное исключение accessexception с IIS7

#asp.net #security #iis-7

Вопрос:

Я пытаюсь записать файл журнала из ASP.NET приложение под IIS7, но продолжайте получать следующее исключение:

Неавторизованное исключение Accessexception «Доступ к пути ‘C:UsersBradyExports» в этом отказано».

Я предоставил доступ на запись пользователям iis_iusrs, iis_wpg и aspnet на основе различных советов, найденных Google, но все равно получаю ошибку. Может ли кто-нибудь, пожалуйста, объяснить, как я могу создать файл журнала в этом каталоге, или создание каталога журнала в самом веб-приложении автоматически позволит записать файл, и, возможно, это не лучшее решение?

Ответ №1:

Вам необходимо предоставить разрешение на одну из следующих учетных записей

 ASPNET - Win XP and Win 2000
NETWORK SERVICE - Win Vista and 2003
 

Это значения по умолчанию, если пул приложений настроен для другой учетной записи процесса, вам потребуется работать с этой конкретной учетной записью.

Ответ №2:

Я думаю, что Митчел это понял, но я добавлю, что устранение неполадок такого рода бесконечно проще с помощью монитора процессов SysInternals (FileMon для устаревших систем), чтобы избавиться от догадок/проб и ошибок.

Ответ №3:

Если вы выдаете себя за какого-либо другого пользователя в ASP.NET, эта учетная запись пользователя должна иметь разрешение на запись в этот каталог. Я настоятельно рекомендую не указывать путь к личной папке пользователя в качестве места для хранения журнала или данных веб-приложения. Для этого требуется ASP.NET учетная запись рабочего процесса, чтобы иметь доступ к личной папке этого пользователя, если они не являются одной и той же учетной записью.

Выделение общей зоны, например D:webappslogapplogfiles, поощряется. С соответствующими разрешениями, конечно.