405 Метод (POST) не разрешен В IIS

#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. Я не могу «играть» с сервером и не могу подтвердить теорию, но это логично и самое главное, теперь она работает.