Здесь много сообщений об этой проблеме, но ни один из них, похоже, не работает для нас.Мы получаем код состояния 405 из приложения dotnet 2.0 только из IIS.Мы создали то же приложение и нацелены на Ubuntu 16.04 без проблем.
Популярное исправление, по-видимому, заключается в изменении файла web.config и добавлении следующего:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<modules>
<remove name="WebDAVModule"/>
</modules>
etc.....
Однако это вызываетвнутренняя ошибка сервера 500.
Мы также пытались:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="WebDAV"/>
etc......
И это приводит к тому же 405 коду состояния.Мы также попробовали:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<verbs allowUnlisted="false">
<add verb="GET" allowed="true" />
<add verb="POST" allowed="true" />
<add verb="DELETE" allowed="true" />
<add verb="PUT" allowed="true" />
</verbs>
</requestFiltering>
</security>
etc...
Это также не удалось.
Мы попытались создать приложение для .net Core 1.1 также без особой радости (проверили, является ли проблема версией .Core).
После каждого изменения мы выполняли командную строку
iisreset
, чтобы убедиться, что все кэшированные настройки «в памяти» были очищены.Мы также пытались каждый раз перезагружать сервер.
Все эти попытки заканчиваются неудачей .... мы все равно получаем 405.
Мы почти уверены, что это проблема IIS, так как приложение работает нормальнов Ubuntu, но наша производственная серверная ферма - все Win / IIS, поэтому мы ДОЛЖНЫ заставить это работать.
Мой ожидаемый обходной путь - это кодирование наших контроллеров без глаголов DELETE или PUT;изменив все на GET и POST.
Кто-нибудь еще может взломать этот орех?
Заранее спасибо.