Запрещенная ошибка при обратной передаче
Мое приложение отображает следующую ошибку при обратной передаче на странице:
Запрещено: у вас нет прав доступа к папке / folder / teste.aspx на этом сервере.
Я могу получить доступ к страницам нормально, проблема в том, когда происходит обратная передача. Например, когда происходит выборочный индекс или нажата кнопка, появляется эта ошибка. Но когда навигация осуществляется по гиперссылкам, ошибка не возникает.
Эта проблема появляется только при доступе к приложению через Интернет. Анонимный доступ уже был включен. Я использую IIS6 и Windows Server 2003.
1 ответ
Это проблема с разрешениями. Вам нужно сделать две вещи: 1) обновить Web.config вашего проекта для олицетворения, и 2) обновить разрешения папки, чтобы разрешить доступ на чтение / запись к учетной записи IUSR на вашем компьютере. Вот подробности:
Сначала добавьте это в ваш Web.config в узле system.web:
<identity impersonate="true"/>
Теперь перейдите в корневую папку вашего веб-сайта в проводнике Windows, щелкните его правой кнопкой мыши и выберите "Свойства".
Затем перейдите на вкладку Безопасность. Нажмите кнопку "Изменить..." рядом с текстом с надписью "Чтобы изменить разрешения, нажмите" Изменить ".
Вы увидите список групп или имен пользователей. Под этим полем нажмите "Добавить..."
В следующем окне "Выбор пользователей или групп" нажмите кнопку "Дополнительно" в левом нижнем углу.
Нажмите кнопку "Найти сейчас" справа. В результатах поиска найдите учетную запись IUSR_MachineName (где имя машины - это имя вашего компьютера). Выберите его, щелкнув левой кнопкой мыши, а затем нажмите "ОК"
Нажмите "ОК" в окне "Выбор пользователей или групп"
В списке групп или имен пользователей найдите только что добавленную учетную запись IUSR и убедитесь, что в нижней части поля "Изменить", "Читать / Выполнить", "Список содержимого папки" и "Читать" отмечены как "Разрешить". Примечание: вам не нужно использовать Modify, но если у вас есть какой-либо код, который записывает в файловую систему, вам нужно будет проверить его.
Дайте этому шанс.
Ради информации, причина, по которой он работает с локального хоста, но не с удаленного, заключается в том, что рабочий процесс идентифицирует вас как аутентифицированного пользователя. Приведенные выше инструкции заставляют IIS использовать "гостевую учетную запись Интернета", а затем вы вручную даете разрешения, необходимые для этой учетной записи.
И последнее замечание: если у вас все еще есть проблема, вы можете попытаться предоставить такой же доступ (используя описанные выше шаги) к учетным записям "Сеть" и "Сетевая служба". Я не думаю, что они имеют значение (я уверен, что они были для Vista, но я могу ошибаться), но на всякий случай.