Платформа ASP.NET отказала в доступе к каталогам IIS ASP.NET

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

Применяется к ASP.NET 1,0 и ASP.NET 1,1.

ASP.NET v1 RTM теперь запускается с использованием учетной записи Windows с меньшим уровнем привилегий, зарегистрированной как учетная запись ASPNET на локальном компьютере.

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

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

В частности, для ASP.NET требуется доступ на чтение, выполнение и перечисление учетной записи ASPNET для корневого узла веб-сайта (например, c:\Inetpub\wwwroot или любого альтернативного каталога сайтов, который мог быть настроен в службах IIS), каталога содержимого и корневого каталога приложения. для отслеживания изменений в файле конфигурации. Корень приложения соответствует пути к папке, связанному с виртуальным каталогом приложения, в средстве администрирования IIS (inetmgr).

Например, рассмотрим следующую иерархию приложений в папке wwwroot.

C:\inetpub\wwwroot\myapp\default.aspx

В этом примере учетной записи ASPNET требуются разрешения на чтение, определенные выше, для содержимого в каталоге MyApp и wwwroot. Один наследуемый список ACL для корневой папки можно также использовать для обоих каталогов, если они являются вложенными.

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

  • С помощью проводника Windows перейдите в каталог.
  • Щелкните правой кнопкой мыши папку каталога и выберите пункт "Свойства".
  • Перейдите на вкладку "безопасность" в диалоговом окне свойств.
  • Нажмите кнопку "Добавить" и введите имя компьютера, а затем имя учетной записи ASPNET. Например, на компьютере с именем "WebDev" необходимо ввести Вебдев\аспнет и нажать кнопку "ОК".
  • Убедитесь, что в учетной записи ASPNET установлены флажки "чтение & выполнение", "список содержимого папки" и "чтение".
  • Нажмите кнопку ОК, чтобы закрыть диалоговое окно и сохранить изменения.

При необходимости эти изменения можно автоматизировать с помощью сценариев или средства "cacls. exe", поставляемого с Windows. Дополнительные сведения об учетной записи ASPNET см. в документе с вопросами иответами.

Если конкретное веб-приложение использует разрешения на запись или изменение для конкретной папки или файла, это можно сделать, выполнив ту же процедуру и установив флажки "Write" и (или) "Modify" (изменить).

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