IIS Express дает сообщение об ошибке "Отказано в доступе" при отладке ASP.NET MVC

Я создал проект ASP.NET MVC 3 и использую IIS Express в качестве веб-сервера при разработке. Когда я пытаюсь отлаживать, я получаю сообщение об ошибке ниже.

Как это можно решить?

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

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

Сообщение об ошибке 401.2.: Неавторизованный. Ошибка входа в систему из-за конфигурации сервера. Убедитесь, что у вас есть разрешение на просмотр этого каталога или страницы на основе предоставленных вами учетных данных и методов проверки подлинности, включенных на веб-сервере. Обратитесь к администратору веб-сервера за дополнительной помощью.

Ответ 1

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

<windowsAuthentication enabled="true">

в файле applicationhost.config, расположенном в папке C:\Users [имя_пользователя]\Documents\IISExpress\config.

Ответ 2

Если вы используете Visual Studio, вы также можете щелкнуть левой кнопкой мыши по проекту в Обозреватель решений и изменить свойство Windows Authentication на Включено в окне Свойства.

Ответ 3

Я использовал ответ Джейсона, но хотел уточнить, как войти в свойства.

  • Выберите проект в обозревателе решений

введите описание изображения здесь

  1. F4, чтобы перейти к свойствам (отличным от правого щелчка Свойства)
  2. Изменить аутентификацию Windows на Включено

введите описание изображения здесь

Ответ 4

Хостинг на IIS Express: 1. Выберите проект в обозревателе решений, чтобы выбрать проект. 2. Если панель "Свойства" не открыта, откройте ее (F4). 3. На панели "Свойства" для вашего проекта:  a) Установите "Анонимная аутентификация" на "Отключено".  b) Установите "Аутентификация Windows" на "Включено".

Ответ 5

В моем случае мне пришлось открыть файл:

C:\...\Documents\IISExpress\config\applicationhost.config

У меня было это внутри файла:

  <authentication>
  <anonymousAuthentication enabled="true" User="" />

Я просто удалил часть User="". Я действительно не знаю, как это произошло...:)

Примечание. Убедитесь, что у вас есть что-то подобное в конце applicationhost.config:

   .
   .
   .
   <location path="MyCompany.MyProjectName.Web">
        <system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="true" />
                    <windowsAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>

Вы также можете посмотреть здесь: fooobar.com/questions/65497/...

Теперь я могу получить доступ к странице входа в систему, как ожидалось.

Ответ 6

В моем случае предыдущий запуск моего приложения из VS зарезервировал URL-адрес. Я мог видеть это, запустив консоль:

netsh http show urlacl

чтобы удалить это резервирование, я запустил это в консоли с повышенной:

netsh http delete urlacl http://127.0.0.1:10002/

Я нашел эти шаги здесь, решил мою проблему.

Я использую VS2013

Ответ 7

Мне пришлось запустить Visual Studio в Administrative Mode, чтобы избавиться от этой ошибки.

Ответ 8

У меня была та же проблема, и я, наконец, смог ее преодолеть.

Solution Explorer Right click on project Properties Web tab Project Url

Я выбрал другой номер порта, и все стало прекрасно!

Ответ 9

Я открыл файл web.config и нашел и удалил этот раздел:

<authorization>
  <deny users="?" />
</authorization>

и мой сайт появился, но есть ошибки с аутентификацией.

Ответ 10

Я только что исправил эту точную проблему в IIS EXPRESS, исправил ее, отредактировав хост приложения .config в разделе местоположения, посвященном ниже. Я установил проверку подлинности Windows в Visual Studio 2012, но когда я вошел в XML, это выглядело так.

тег auth для Windows должен быть добавлен ниже, как показано.

<windowsAuthentication enabled="true" />

<location path="MyApplicationbeingDebugged">
        ``<system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <!-- INSERT TAG HERE --> 
                </authentication>
            </security>
        </system.webServer>
</location>

Ответ 11

Я боролся с этой проблемой, пытаясь создать простую программу для SharePoint с помощью Host Hosted.

Пройдя через applicationhost.config, в разделе basicAuthentication было установлено значение false. Я изменил его на истину, чтобы преодолеть 401,2 в моем сценарии. Существует множество других ссылок о том, как найти applicationhost.config для IIS Express.

Ответ 12

Никто из вышеперечисленных не работал у меня. Это работало для меня до сегодняшнего дня. Затем я понял, что работаю над созданием размещенного подключения на своем ноутбуке и использовал подключение к Интернету с беспроводным сетевым подключением.

Чтобы исправить мою проблему:

Перейдите в Панель управления > Сеть и Интернет > Сетевые подключения

Щелкните правой кнопкой мыши на любом дополнительном беспроводном сетевом соединении, которое у вас может быть (мое имя было названо Wireless Network Connection 2) и нажмите "Свойства".

Перейдите на вкладку "Общий доступ" вверху.

Снимите флажок, в котором говорится: "Разрешить другим пользователям сети подключаться через интернет-подключение к компьютеру".

Нажмите "ОК" > "Применить".

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

Ответ 13

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

Убедитесь, что в свойствах проекта в визуальной студии URL проекта не назначен на тот же URL-адрес или порт, который используется в IIS для любых привязок сайтов.

Я искал "почему" для этого, но мое предположение с моей точки зрения заключается в том, что как IIS, так и Visual Studio IIS выражают использование одного и того же каталога при создании виртуальных каталогов, а Visual Studio может создавать только новые виртуальные каталоги и не может изменять какой-либо IIS, созданный при применении привязок к сайту.

не стесняйтесь исправить меня по причине.

Ответ 14

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

Мы удалили все элементы управления со страницы-нарушителя и добавили их обратно один за другим, пока не установится и не будет исправлено правильное управление.