Доступ к тропе c:inetpubwwwrootmyappApp в данных отказано

Я только что установил IIS в Windows XP.

когда я пытаюсь запустить приложение, я получаю сообщение об ошибке:

доступ к пути 'c:inetpubwwwrootmyappApp_Data-отказано. Описание: необработанное исключение во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации сведений об ошибке и где было задано в коде.

Сведения Об Исключении: System.UnauthorizedAccessException: доступ к этот путь 'c:inetpubwwwrootmyappApp_Data' отказано.

ASP.NET не имеет права доступа к запрашиваемому ресурсу. Считать предоставление прав доступа к ресурсу ASP.NET запрос тождественность. ASP.NET имеет идентификатор базового процесса (обычно {MACHINE}ASPNET на IIS 5 или сетевая служба на IIS 6), которая используется, если приложение не олицетворяет. Если приложение через подражание , идентификация будет анонимный пользователь (обычно IUSR_MACHINENAME) или проверенный запрос пользователя.

предоставить ASP.NET доступ к файлу, щелкните правой кнопкой мыши файл в Проводнике, выберите "Свойства" и выберите вкладку Безопасность. Нажмите "Добавить", чтобы добавить соответствующий пользователь или группа. Выделить ASP.NET счет, и установите флажки для нужного доступа.

Ошибка Источник:

строка 70: защищенный суб cmbSettingFiles_SelectedIndexChanged(ByVal отправитель как объект, бывал е как система.EventArgs В) Обрабатывает cmbSettingFiles.Разделе мы рассмотрим
Строка 71: Dim doc As XmlDocument = новый XmlDocument ()
Строка 72: doc.Загрузить (Путь.Объединить (basePath, cmbSettingFiles.SelectedValue)) Строка 74: Dim settingsNode как XmlNode = doc.Метод selectsinglenode ("/"настройка"")

Исходный Файл: C:myappinstallinstall.аспн.линия В. Б.: 72

Я попробовал разрешение решетки, сделав это:

предоставить ASP.NET доступ к файлу, щелкните правой кнопкой мыши файл в проводнике, выберите "Свойства" и выберите вкладку Безопасность. Нажмите "Добавить", чтобы добавить соответствующий пользователь или группа. Выделить ASP.NET счет, и установите флажки для нужного доступа.

но ошибка сохраняется.

Это как-то связано с моим код?

Как я могу решить это?

редактировать

Я решил проблему на моем компьютере dev, но я все еще получаю ошибки в моем веб сервер.

спасибо.

9 ответов


попробуйте перейти к свойству папки App_Data и добавить пользователя ASPNET с read и запись

Ref:
как назначить правильные разрешения для папки App_Data WebMail Pro ASP.NET
разрешения на папку APP_DATA
ASP/ASP.Чистый лучший способ обработки разрешений на запись?

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


подумайте, если ваш файл только для чтения, то дополнительные параметры могут помочь с FileStream

using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read))

для тех, кто работает IIS на Windows Server:

по умолчанию пользователь IIS не имеет разрешений на запись для . Это можно решить, предоставив полные разрешения IIS_IUSRS для пользователей wwwroot.

  1. откройте Проводник и перейдите к C:/inetpub/
  2. щелкните правой кнопкой мыши на wwwroot и нажмите "Свойства"
  3. перейдите на вкладку Безопасность и нажмите "Изменить"..."для редактирования разрешений
  4. найти и выберите пользователь IIS. В моем случае он назывался IIS_IUSRS ([server name]\IIS_IUSRS).
  5. установите флажок "Разрешить" для всех разрешений.

вы уверены, что добавляем нужного пользователя? Вы проверили, какой пользователь установлен для пула приложений приложений?

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

можете ли вы опубликовать пример доступа к файлу? Что это за файл? Фрагменты кода помогут вам получить более точный ответ.


У меня была похожая ситуация. Я использую TFS для управления исходным кодом. Я обнаружил, что, когда он был зарегистрирован, он сделал файлы только для чтения. Это вызвало вышеуказанную ошибку в моей службе, где она открывала их чтение / запись. Однажды я проверил их для редактирования. Все работало отлично. Я рассматриваю возможность открытия их только для чтения в службе. Я думаю, что как только они будут опубликованы на рабочем сервере, это не проблема. Только в среде разработки. Я видел аналогичные проблемы со службами, использующими Entity Framework. Если.svc-файл зарегистрирован, вы не можете делать обновления базы данных через EF.


Я попытался добавить ASP.net v4.0 с полным разрешением добавьте пользователя сетевой службы, но ничего не помогайте. Наконец, добавлено право изменения пользователя DefaultAppPool в папке App_Data, проблема решена.


запустите Visual Studio с правами администратора..Этот вопрос для меня решен..

доступ к пути запрещен C:\inetpub\wwwroot отказано указывает, что веб-сайт самообслуживания не может получить доступ к определенной папке на сервере, где он установлен. Это может быть либо потому, что расположение не существует, либо потому, что пользователь проверки подлинности не имеет никаких разрешений для записи в это расположение.


попробуйте предоставить разрешение пользователю сетевой службы.


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