#asp.net #http #iis
Вопрос:
У меня есть очень простая ASP.NET приложение, которое получает запрос (POST) от сервера единого входа (OIDC) с токеном для аутентификации соединения. Он работал на сервере разработки и подготовки производства, но в процессе производства запрос (POST) возвращает следующую ошибку:
...
Status Code: 405 Method Not Allowed
...
Allow: GET, HEAD, OPTIONS, TRACE
...
Мы пересмотрели и перепробовали множество опций в IIS, чтобы разрешить метод POST HTTP ( Правила авторизации, сопоставления обработчиков,…), но мы не можем найти, в чем проблема. Другое приложение в том же пуле работает (позволяет отправлять команды). Я думаю, что проблема в сопоставлениях обработчиков, но я не знаю, есть ли способ проверить обработчики, действительно используемые запросом.
Обновить
Файл web.config очень прост в разработке и предустановке. В pro мы пробовали некоторые решения, но оставили все как было:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
...
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.5.2" />
</system.web>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
...
</assemblyBinding>
</runtime>
</configuration>
Комментарии:
1. Поделитесь своей веб-конфигурацией
2. Проверьте модуль сопоставления обработчиков. Убедитесь, какая библиотека DLL обрабатывает запрос URL-адреса. Затем проверьте его глагол. i.stack.imgur.com/uWqsY.png
3. Да @BruceZhang, в том-то и дело, я думаю, что проблема тоже есть, но как я могу узнать, какой обработчик (или обработчики) управляет моим запросом?
4. Вам нужно указать, какой обработчик управляет запросом. Вы также можете попробовать использовать трассировку неудачных запросов . Возможно, он будет регистрироваться, но более рекомендуется использовать пользовательский метод.
5. @BruceZhang У меня нет простого способа протестировать сервер, и теперь ответственный за сервер прислал мне сообщение о том, что он исправил проблему (см. Ответ). Но в следующий раз я попытаюсь отследить запрос или создать пользовательский метод.
Ответ №1:
ИТ-менеджер учетной записи сказал мне, что он удалил папку с тем же именем маршрута ASPNET, и она была обработана. Я думаю, что IIS использовал обработчик для папок, а не для aspx. Я не могу «играть» с сервером и не могу подтвердить теорию, но это логично и самое главное, теперь она работает.