Разработка сайта в vs2010, но изменился на локальный IIS и подсказки - PullRequest
1 голос
/ 06 августа 2011

Если я запускаю веб-проект Visual Studio C # 2010 с помощью «Использовать Visual Studio Development Server» в настройках проекта, мое приложение открывается нормально, а CSS рендерится и все изображения отображаются.

Если я изменю свойство проекта на использование Локального веб-сервера IIS и попытаюсь запустить проект. Я получаю подсказку о том, сколько изображений / CSS-файлов я связал. Если я продолжаю нажимать кнопку «Отмена», появляется веб-страница, но все изображения отсутствуют, а файл CSS не отображается (форматирование выглядит как ад).

Я подумал, что это должно быть какой-то проблемой безопасности. У меня есть настройка проекта в файле веб-конфигурации для использования аутентификации «Windows», и я также включил анонимный доступ. Я добавил учетную запись сетевого / сетевого сервиса и дал полные права. Я добавил учетную запись ASPNET на моем локальном компьютере и дал полный доступ. Я даже добавил свой домен пользователей и даже настолько отчаялся, что дал им полный доступ ...

не повезло .. Мне все еще предлагают, и если я пытаюсь перейти к одному из изображений непосредственно в URL: http://localhost/mysite/images/myimage.jpg Я получаю ошибку:

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

Сообщение об ошибке 401.3: у вас нет прав для просмотра этого каталога или страницы с использованием предоставленных вами учетных данных (доступ запрещен из-за Списки контроля доступа).

Я не знаю, что еще нужно сделать или изменить, чтобы заставить это работать ...

1 Ответ

1 голос
/ 06 августа 2011

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

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

what app pool am I using

Как только вы узнаете, какой пул приложений вы используете, вы можете просмотреть, какой пользователь настроен для запуска этого пула приложений, проверив пулы приложений, выберите Дополнительные параметры для своего пула приложений,затем посмотрите на Дополнительные параметры -> Модель процесса -> Идентичность.

what user is my app pool using

По умолчанию пулы приложений настроены на использование пользователя AppPoolIdentity (кстати, в случае, если вам это нужно,имя пользователя для этого пользователя - IIS APPPOOL\ApplicationPoolName, поэтому в моем случае это будет IIS APPPOOL\mywebapp).Этот пользователь является членом как группы «Пользователи», так и группы «Прошедшие проверку». Если ваш пул приложений настроен на использование пользователя AppPoolIdentity , самый простой способ решить возникшую проблему с разрешениями - убедиться, что в группе пользователей как минимум указано Чтение& Выполнить , Список содержимого папки и Чтение доступа к корневой веб-папке приложения, а также ко всем файлам и подкаталогам.На моем тестовом компьютере авторизованным пользователям также разрешен любой доступ, за исключением полного доступа.(Примечание: в целях правильности эти ACL применяются каждый раз, когда я создаю новую папку в C :. Если вы хотите, вы можете уйти, не добавляя аутентифицированных пользователей или просто указав доступ на чтение для пользователей.не собираюсь пытаться определить, какой здесь фактический минимальный требуемый доступ).

Чтобы указать эти разрешения, щелкните правой кнопкой мыши папку, в которой находится веб-приложение в проводнике Windows, выберите Свойства> Безопасность, нажмите кнопку Изменить,и затем используйте Добавить, чтобы добавить группы.Обратите внимание, что после добавления групп вам, вероятно, потребуется нажать кнопку «Дополнительно»> «Изменить разрешения»> кнопку «Заменить все разрешения дочерних объектов ...», а затем нажать кнопку «ОК», чтобы предоставить разрешения всем дочерним объектам в папке (см.ниже).После завершения этой операции вы можете проверить один из файлов .css, чтобы убедиться, что группы были добавлены правильно.

enter image description here

После добавления этих разрешений IIS должен бытьвозможность обслуживать файлы CSS и изображения.

В качестве примечания: если вы получаете приглашение для входа в Windows, то, скорее всего, у вас включена функция «Проверка подлинности Windows - 401 Challenge» в разделе «Проверка подлинности» в IIS дляваше веб-приложение (см. ниже).Если этот параметр не указан, вы не получите подсказку при попытке просмотреть файл, который не имеет надлежащих списков ACL.Вместо этого вы просто получите сообщение об ошибке.Приглашение не будет отображаться.

enter image description here

Я проверил эту информацию с помощью Windows 7 Ultimate и IIS 7.5, поэтому, если вы используете другую ОС YMMV, но я считаю, что IIS должен вести себякак описано.

Надеюсь, это поможет.Если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...