Подробное решение для сообщения об ошибке ASP.NET 401.3 Отказано в доступе

Я только что написал пример кода для веб-приложения ASP.NET, используя веб-службу. Среда — Visual Studio 2015. Моя операционная система — Windows 8.

При выполнении отладки веб-страница не показывала приложение по URL-адресам. Скорее он сообщает об ошибке:

"

Ошибка сервера в приложении '/'

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

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

Информация о версии: Версия Microsoft .NET Framework: 4.0.30319; Версия ASP.NET: 4.0.30319.34248

"

Что я пробовал:

дал доступ к «IIS_IUser», но вместо этого он должен быть «IUSR». Это решило проблему. Это взято из сообщения: Хостинг ASP.NET в IIS7 дает доступ отказано?

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

Например, я не понимаю, куда добавить IIS_IUSRS или IUSR. какие они вообще? Во-вторых, кажется, что ни IIS_IUSRS, ни IUSR не распознаются в моей папке безопасности (щелкните правой кнопкой мыши папку приложения, свойство-> вкладка безопасности)

Для получения дополнительной информации мой Web.config выглядит так:

<?xml version="1.0"?> 
<!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> 
<configuration> 
<system.web> 
<compilation debug="true" targetFramework="4.0"/> 
<httpRuntime/>
 </system.web>
 </configuration> 

person Curly    schedule 17.07.2015    source источник
comment
Можете показать <security> раздел вашего файла web.config?   -  person vendettamit    schedule 17.07.2015
comment
Отредактируйте вопрос, чтобы добавить больше деталей не в комментарии. Другие, возможно, не смогут получить все это, читая ваш вопрос.   -  person vendettamit    schedule 17.07.2015
comment
Перейдите к properties вашего проекта, нажав F4, и посмотрите, если Anonymous пользователь enabled. Если нет, то включите его и повторите попытку.   -  person vendettamit    schedule 17.07.2015
comment
свойства, щелкнув правой кнопкой мыши папку проекта, выбрав свойства под окнами; или перейти к обозревателю решений в VS, щелкнуть правой кнопкой мыши и выбрать свойства?   -  person Curly    schedule 17.07.2015
comment
ASMX — это устаревшая технология, и ее не следует использовать для новых разработок. WCF или веб-API ASP.NET следует использовать для всех новых разработок клиентов и серверов веб-служб. Один совет: Microsoft удалила форум ASMX в MSDN.   -  person John Saunders    schedule 18.07.2015
comment
@JohnSaunders Хороший улов.   -  person vendettamit    schedule 18.07.2015
comment
Так какое решение тогда? Никогда не получится? Спасибо   -  person Curly    schedule 20.07.2015


Ответы (2)


  1. Перейдите в корень вашего веб-приложения: например. C:\Inetpub\wwwroot[имя папки веб-сайта]
  2. Щелкните правой кнопкой мыши файл и перейдите в «Свойства> Безопасность».
  3. Нажмите «Изменить», а затем нажмите «Добавить».
  4. Нажмите «Дополнительно» в левом нижнем углу.
  5. Нажмите «Найти сейчас» — должны быть перечислены все доступные учетные записи.
  6. Прокрутите, пока не найдете «IUSR», и выберите его.
  7. Нажмите «ОК»
  8. Нажмите «ОК» еще раз
  9. В блоке "Разрешения для IUSR" нажмите "разрешить" рядом с "Полный доступ"
  10. Нажмите «Применить» (подождите, пока диалоговое окно закроется).
  11. Нажмите «ОК»
  12. Нажмите «ОК» еще раз

ваша проблема должна быть решена

person Chad    schedule 23.10.2017

В дополнение к ответу Чада есть сложная настройка, которую вам, возможно, придется проверить:

1) Откройте корневой веб-сайт в IIS.

2) Go to Authentication --> Anonymous Authentication --> Edit

3) Убедитесь, что Anonymous user identity установлено на Application pool identity

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

person Thomas C. G. de Vilhena    schedule 03.07.2019