Назад | Перейти на главную страницу

Как узнать, что мешает работе запросов на удаление в iis7.5 и iis8?

На нашем сайте есть MVC Rest API. Недавно и рабочие серверы, и моя машина разработки перестали принимать запросы DELETE, вместо этого возвращая ответ 501 Not Implemented.

На моей машине разработки, которая представляет собой Windows 7 под управлением IIS7.5, решение заключалось в том, чтобы добавить эти строки в наш Web.config в system.webServer / handlers:

<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
...
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*."
     verb="GET,HEAD,POST,DEBUG,PUT,DELETE"
     type="System.Web.Handlers.TransferRequestHandler"
     resourceType="Unspecified" requireAccess="Script"
     preCondition="integratedMode,runtimeVersionv4.0" />

Однако это не сработало ни на одном из наших действующих серверов; не на Sever 2008 + IIS7.5 и не на Server 2012 + IIS8.

В фильтрации запросов не настроены команды, и WebDAV не установлен ни на одном из наших действующих серверов.

Страница ошибки не дает никакой дополнительной информации, и ничего не записывается в журналы. Как узнать, что мешает работе запросов DELETE в iis7.5 и iis8?

Я знаю, что это «мертвый вопрос», но я нашел его, пытаясь найти ответ на свой вопрос. Мой запрос PUT каждый раз давал мне 501, я уже добавил глагол PUT в общую конфигурацию (http://stevemichelotti.com/resolve-404-in-iis-express-for-put-and-delete-verbs/) и настроить в каталоге .vs, но ничего не помогло.

Впоследствии я перепроверил свой контроллер и обнаружил там неразрешенную зависимость интерфейса, поэтому я исправил это, и теперь все в порядке. Итак, я хочу сказать: проверьте свой код на наличие ошибок, если добавление глаголов не помогает.