IIS 7.5 запрашивает имя пользователя и пароль

наше приложение настроено на использование проверки подлинности форм, и на большинстве машин оно отлично работает. Однако у меня возникла проблема со средой разработки на одной из наших рабочих станций разработчика. Когда я иду на один из URL-адресов приложения, например:

http://iweb.local / reports/

IIS запрашивает у меня пароль, например:

IIS prompts for a username and password

(название iweb.local настройки в файл hosts указать 127.0.0.1. По сути, это псевдоним для localhost. Мы настраиваем сайт IIS на использование заголовка узла, чтобы потенциально поддерживать несколько приложений в будущем.)

мне не будет предложено ввести пароль, если я перейду к большинству других URL-адресов в приложении, таких как http://iweb.местный/. И мне не предлагается пароль в любом месте, используя ту же самую базу кода на любой другой машине разработчика. Только эта одна машина есть проблема. Это приводит меня к разумной уверенности в том, что это не проблема с кодированием.

вещи, которые я пробовал:

  • тестирование с помощью другого веб-браузера. На компьютере возникла неполадка, проблема происходит независимо от того, какой браузер я использую. Я получаю то же самое приглашение в FireFox и IE9.
  • тестирование на других машинах разработчика. Проблема не в них. Это происходит только на одном разработчике коробка.
  • копирование кода и активов из ~/Areas/Reports на ~/Areas/ReportsTest, С соответствующим переделывает, и нагрузки http://iweb.local/reportstest/. Это работает; браузер больше не запрашивает имя пользователя и пароль. Однако изменение URL-адреса не является вариантом для нашего приложения.
  • проверка конфигурации проверки подлинности IIS. Включена анонимная проверка подлинности и проверка подлинности форм. Все остальное отключено. Это идентично на всех машинах разработчика, включая те, которые работают и тот, который не знает.--37-->
  • проверка журнала событий. IIS ничего не регистрирует в журнале событий.
  • проверка журналов IIS. Журналы содержат записи для успешных запросов (например, когда я открываю http://iweb.local), но он ничего не регистрирует для любых запросов, которые предлагают пользователю ввести пароль.
  • проверка заголовков запросов и ответов с помощью FireBug. Заголовки запроса кажутся идентичными для запроса к любому URL-адресу. Заголовки ответов для http://iweb.local/reports есть два варианта WWW-Authenticate: Negotiate и NTLM. Из этого я подтвердил, что IIS направляет браузер для запроса пароля. Но я не приблизился к пониманию, почему.
  • завершение работы IIS, настройка службы публикации World Wide Web для запуска типа руководства, чтобы он не запускался автоматически, и перезагрузка компьютера. Затем я проверил, есть ли http://iweb.local или http://iweb.local/reports/ отвечали на запросы. Ни были, подтверждая, что это IIS, который обработка запросов.
  • остановка IIS, удаление всего проекта с жесткого диска разработчика и извлечение его из системы управления версиями. Моя мысль здесь заключалась в том, что это может быть проблема с разрешением на одну из папок (хотя я не понимаю, как это может быть, учитывая, что это приложение MVC), и что прохождение этого процесса гарантирует, что все папки имеют правильные разрешения. Но это ничего не изменило.
  • полное удаление IIS, перезагрузка компьютера и повторная установка IIS. Это тоже не сработало.

у меня нет идей. Я не могу найти ничего в этом одном окне разработчика, которое не настроено так же, как другие коробки разработчика.

так: кто-нибудь знает способ включить более глубокий уровень ведения журнала или трассировки, чтобы выяснить, почему IIS запрашивает пароль? Может ли кто-нибудь подумать о чем-то, что может быть причиной этого, что я еще не смотрел для?

это ASP.NET приложение MVC 3, работающее на IIS 7.5 в 64-разрядной среде. The reports часть URL-адреса настроена как область MVC.

обновление

в моей паутине.файл конфигурации, вот как режим проверки подлинности настраивается на машине-нарушителе.

<authentication mode="Forms">
    <forms loginUrl="~/account/login" timeout="2880" />
</authentication>

нет <authentication> элемент в Интернете.файл config для раздела "отчеты".

2 ответов


Если в приложении есть папка " отчеты "и на сервере установлены службы SQL Server Reporting Services, то папка виртуального каталога служб Reporting Services, которая также называется" отчеты", будет конфликтовать с папкой" отчеты " приложения. Чтобы исправить это, откройте Диспетчер конфигурации служб Reporting Services (Пуск - >Все программы - >MS SQL Server - >инструменты конфигурации - > диспетчер конфигурации служб Reporting Services) и измените виртуальный каталог с "отчеты" на любое другое имя ("TestReports") в разделе" URL-адрес диспетчера отчетов " в меню слева.

Это решит проблему проверки подлинности IIS


используйте fiddler или инструменты dev в IE9 для просмотра запроса. Затем это покажет, что в заголовке вызывает всплывающее окно. Это может быть базовая аутентификация или аутентификация NT, где браузер не может выполнить запрос. Поскольку он локализован на одной машине, проверьте, что IIS настроен только на анонимность и проверьте разрешения на запрашиваемый файл.