Я хочу реализовать недавно одобренный HTTP-глагол PATCH в сервисе RESTful, реализованном в ASP MVC 3. Я добавил следующие параметры в файл web.config.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="PATCHVerbHandler" path="*" verb="PATCH" modules="ProtocolSupportModule" requireAccess="None" />
</handlers>
<security>
<requestFiltering>
<verbs>
<add verb="PATCH" allowed="true" />
</verbs>
</requestFiltering>
</security>
</system.webServer>
</configuration>
Метод действия оформленс атрибутом AcceptVerbs("PATCH")
.
Служба корректно работает с глаголом PATCH.URL-адрес перенаправляется на правильный метод действия и возвращает правильные данные.
Странная проблема в том, что если я использую другой URL-адрес, который не соответствует ни одному из маршрутов, используя глагол PATCH, IIS возвращает «200 OK» вместо"404 Не Найдено".Все стандартные глаголы (GET, PUT, DELETE, POST, HEAD, OPTIONS) не имеют этой проблемы.
Нужно ли регистрировать дополнительные обработчики для глагола PATCH или это проблема маршрутизации?Любая помощь приветствуется.