Нет доступа к файлам в приложении iis7 MVC - сервер 2008 R2 - PullRequest
0 голосов
/ 25 апреля 2011

Я только что установил Windows Server 2008 r2 вместе с Visual Studio и Dropbox.Я использую ее в качестве виртуальной машины для разработки, а Dropbox помогает мне синхронизировать мои файлы с другими компьютерами.

У меня настроен сайт в IIS, но при попытке получить доступ отказанодля просмотра сайта.У меня было это раньше, и чтобы обойти это в прошлом, я прошел и добавил учетную запись IIS_User в список разрешений для чтения / изменения файлов.Я предполагаю, что поскольку файл был скопирован с помощью выпадающего списка, файлы не имеют необходимых разрешений.Вот ошибка, я не могу пакетно обновить файлы, изменив разрешения для папки, я должен сделать это прямо на уровне файлов и даже хуже, по одному за раз!У меня не может быть этого.

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

Я попытался добавить анонимные разрешения на веб-сайт в IIS, и ядобавлены разрешения на папку для IIS_User (даже для всех).У меня есть учетная запись администратора, и она уже настроена для того, чтобы я мог читать / писать / изменять файлы.

Обычно это сообщение, которое я получаю "Произошла ошибка при загрузке файла конфигурации: доступ к пути XЗапрещено '.

Это происходит в файлах ascx и aspx, а также в файлах конфигурации.

Изменения: сайт отображается при отладке из Visual Studio.Сайт работает в режиме полного доверия (внутренний)

Пожалуйста, помогите, это мешает мне работать и сводит меня с ума!

Ответы [ 2 ]

1 голос
/ 26 апреля 2011

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

Что касается установки разрешений NTFS, это может быть сложно. После того как вы отключили наследование разрешений, этот файл или папка должны будут обновляться индивидуально каждый раз, когда вам нужно изменить разрешение. Обратной стороной этого является то, что вы не можете удалить унаследованные записи в ACL, вы можете только добавить к ним. Однако вы можете разработать стратегию, которая предлагает базовый уровень разрешений в корне файловой структуры, а затем добавить разрешения для подпапок / файлов.

Чтобы проверить и сбросить наследование в папке, перейдите в ее свойства, откройте вкладку «Безопасность», нажмите «Дополнительно», затем нажмите «Изменить». Вы можете увидеть, наследует ли эта папка разрешения от своего родителя, и при желании удалить все разрешения для подпапок / файлов и включить наследование для всех дочерних папок и файлов.

Надеюсь, это поможет.

Advanced Security Settings Dialog

1 голос
/ 26 апреля 2011

По умолчанию в IIS 7 веб-сайты работают как сетевая учетная запись локальной системы (NetworkService), а не как IIS_User.

Чтобы убедиться, что в диспетчере IIS выберите нужный сайт, щелкните «Основные настройки» и проверьте пул приложений, которому он назначен. Затем перейдите в пулы приложений и проверьте идентичность для этого пула приложений. Убедитесь, что указанный пользователь находится в ACL.

Добавление всех в ACL должно работать вместо этого, но на всякий случай я бы посоветовал вам проверить выше. Также, конечно, убедитесь, что при установке ACL флажок для сброса наследования во всех подпапках, если это подходит для вашего приложения.

Вы также можете попытаться установить идентификатор пула приложений для созданного вами локального (или доменного) пользователя, который имеет доступ к каталогу вашего приложения.

Надеюсь, это поможет.

...