Если вы используете Visual Studio 2012 или более позднюю версию для разработки приложения веб-API, IIS Express является веб-сервером по умолчанию.Этот веб-сервер представляет собой уменьшенную версию полной функциональности IIS, которая поставляется в серверном продукте, и этот веб-сервер содержит несколько изменений, которые были добавлены для сценариев разработки.Например, модуль WebDAV часто устанавливается на производственном веб-сервере, на котором установлена полная версия IIS, хотя он может и не использоваться в действительности.
Установочная версия IIS (IIS Express) устанавливаетмодуль WebDAV, , но записи для модуля WebDAV преднамеренно закомментированы, поэтому модуль WebDAV никогда не загружается в IIS Express .В результате ваше веб-приложение может корректно работать на локальном компьютере, но вы можете столкнуться с ошибками HTTP 405. при публикации приложения веб-API на рабочем веб-сервере.
, поскольку ваш сервер DEV имеет полную функциональность IIS (с WebDAV) он зарегистрирует несколько обработчиков для одного и того же глагола / метода, и один из обработчиков блокирует ожидаемый обработчик от обработки запроса.
Итак, WebDAV переопределяет ваши HTTP PUT и DELETE.Во время обработки запроса HTTP PUT IIS вызывает модуль WebDAV. Когда вызывается модуль WebDAV, он проверяет свою конфигурацию и видит, что он отключен, поэтому он возвращает ошибку HTTP 405 Method Not Allowed для любого запроса, который напоминает запрос WebDAV.
Вы можете прочитать больше здесь https://docs.microsoft.com/en-us/aspnet/web-api/overview/testing-and-debugging/troubleshooting-http-405-errors-after-publishing-web-api-applications
Чтобы отключить WebDAV, добавьте следующее в ваш web.config
<system.webServer>
<modules>
<remove name="WebDAVModule"/>
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
</system.webServer>