1

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

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

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

Я не эксперт IIS, поэтому извиняюсь, если это расплывчато или двусмысленно!

1 ответ1

1

Я предполагаю, что вы назначаете Все Полный доступ всему сетевому ресурсу, а не только определенной папке внутри общего ресурса.

Вы, вероятно, уже знаете это, но Windows управляет двумя разрешениями для совместного использования - безопасностью файлов и настройками общего доступа. Оба должны быть настроены для доступа к сетевому ресурсу. Если вы щелкнете правой кнопкой мыши по общей папке, вам потребуется настроить разрешения на вкладках «Общий доступ» и «Безопасность».

Я подозреваю, что проблема на самом деле связана с использованием учетной записи NETWORK SERVICE, а не с вашими разрешениями на совместное использование. Учетные записи уровня обслуживания (SYSTEM и NETWORK SERVICE) являются локальными для компьютера, на котором вы работаете, что имеет некоторые последствия. Например, рассмотрим, как настраиваются ваши разрешения с использованием полных имен:

На вашем сервере приложений учетная запись, в которой запущено ваше приложение ASP.NET, называется «Сервер 5амиловых \NETWORK SERVICE». На общем сетевом ресурсе, находящемся на другом компьютере, локальная учетная запись на самом деле является «Сетевым общим сервером 5 Slovakia \NETWORK SERVICE».

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

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

Итак, попробуйте это:

  1. На вашем компьютере с IIS создайте пользователя с именем IUSR_SHARE (или любым другим). Установите пароль!
  2. На общем сетевом компьютере создайте пользователя с именем IUSR_SHARE и установите тот же пароль.
  3. В диспетчере IIS выберите пул приложений, который используется вашим веб-приложением (создайте новый, если вы используете стандартные). Нажмите на Дополнительные настройки в правой панели действий. В разделе Модель процесса измените пользователя на IUSR_SHARE.

У меня нет здесь настроек, где я могу легко это проверить, но я подозреваю, что это сработает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .