ApplicationPoolIdentity не имеет разрешения на запись в папку ASP.NET App_Data
Эта статья поможет устранить проблему, из-за чего возникает ошибка (отказано в доступе), когда веб-приложение записывает данные в папку ASP.NET App_Data .
Исходная версия продукта: Службы INTERNET INFORMATION Services 7.5 и более поздние версии
Исходный номер базы знаний: 2005172
Симптомы
Веб-приложение создается с помощью Microsoft Visual Studio, а затем публикуется в службах IIS 7.5 или более поздней версии. В рамках обработки запроса приложения необходимо записать данные в папку App_Data на сервере. Например, приложение использует SQLDataSource
или XMLDataSource
. При попытке сделать это отображается сообщение об ошибке, похожее на следующее:
Сведения об исключении: System.UnauthorizedAccessException: доступ к пути [путь к папке App_Data] запрещен.
Причина
Начиная с IIS 7.5 и более поздних версий, по умолчанию для пула приложений используется идентификатор ApplicationPoolIdentity. При создании веб-приложения с помощью Visual Studio папка App_Data не настраивается автоматически, чтобы разрешить доступ на запись для ApplicationPoolIdentity. Поэтому попытка записи в папку App_Data завершится ошибкой.
Разрешение
Чтобы обойти это поведение, предоставьте разрешения ACL на чтение и запись для ApplicationPoolIdentity (IIS APPPOOL\ApplicationPool) в папке App_Data .
Дополнительная информация
ApplicationPoolIdentity — это управляемая учетная запись службы, которая представляет собой новую концепцию, представленную в Windows Server 2008 R2. Дополнительные сведения об управляемых учетных записях служб см. в статье Новые возможности учетных записей служб.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по