У меня есть два веб-сервиса, старой школы, asmx. Оба находятся в той же sub папке, которые имеют анонимную аутентификацию в веб-приложении MVC, которые имеют аутентификацию Windows.
Когда я просматриваю один из них, я получаю ожидаемый результат, я могу Вызвать сервис, но когда я просматриваю другой, я получаю "Ошибку HTTP 401.2 - Несанкционированный, Вы не разрешены просмотреть эту страницу из-за недопустимых заголовков аутентификации"..
Я затем переименовываю второй, и все хорошо работает. Даже если я удаляю второй asmx файл, я становлюсь Лишенным полномочий вместо "Ресурса, не найденного".
Я искал реестр и файловую систему для ссылок на имя файла, но ничего не нахожу. Я удалил ASP.NET Временные Файлы, но это не помогло.
Какие-либо рекомендации по устранению отказов?
Это было нелегко найти, но в inetpub \ temp \ appPools \ была папка с именем пул приложений. В этой папке есть «копии» частей конфигурации IIS.
В какой-то момент мы должны были случайно пометить фактический файл asmx вместо папки, когда мы изменили аутентификацию. Таким образом, он содержал специальный раздел конфигурации только для файла. Например:
<location path="Web/Services/ServiceName.asmx">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
Когда мы удалили этот раздел, он снова заработал :)
После долгой работы я нашел то же самое... Я думаю, что общей темой здесь является то, что папка, о которой идет речь, называется "Службы".
В конфиг-файле пула приложений была поддельная запись, где
Мое решение, устанавливает anonymousAuthentication = "True"
Интересно, не является ли это маленькой ошибкой в IIS, где эта часть конфига по каким-то причинам игнорируется.