Настройка ASP.NET MVC 3 для IIS7.5 с RESTful Verbs

У меня есть спокойный контроллер с вашими стандартными HTTP-глаголами REST: Get, Post, Put, Delete. Проблема, с которой я сталкиваюсь, заключается в том, что, хотя мои контроллеры настроены на прием этих глаголов, когда я выполняю свое действие REST, оно может вызывать только мои методы Get и Post.

У меня есть атрибуты поверх действий контроллера: HttPut, HttpDelete, HttpPost и HttpGet.

У меня также есть метод переопределения в моих формах: @Html.HttpMethodOverride(HttpVerbs.Put)

Когда я отправляю свою форму, я получаю сообщение об ошибке 404 от IIS 7.5, в котором говорится, что обработчику статических файлов не удалось найти ресурс. Как ни странно, в Cassini работают те же формы, поэтому я думаю, что это что-то в настройке IIS7.5.

Что мне нужно сделать, чтобы IIS 7.5 мог обрабатывать команды REST, такие как PUT и DELETE, с Asp.Net MVC 3?

Я уже удалил WebDAV и просмотрел обработчики, но те, которые я изменяю, похоже, ничего не делают.

Моя текущая установка — Asp.Net MVC 3, IIS7.5 в Windows 7.

Заранее спасибо.


person Khalid Abuhakmeh    schedule 11.02.2011    source источник
comment
Решение состоит в том, чтобы удалить модуль WebDAV, но я также использовал библиотеку Restful-Routing, и оказалось, что это небольшая ошибка в этом коде, которая вызывала странное поведение. Пропатчил и теперь работает!   -  person Khalid Abuhakmeh    schedule 11.02.2011


Ответы (1)


Решение состоит в том, чтобы удалить модуль WebDAV, но я также использовал библиотеку Restful-Routing, и оказалось, что это небольшая ошибка в этом коде, которая вызывала странное поведение. Пропатчил и теперь работает! -

person Khalid Abuhakmeh    schedule 16.02.2011
comment
почему WebDAV необходимо удалить? - person one.beat.consumer; 23.12.2011
comment
WebDAV резервирует некоторые глаголы для себя, поэтому при использовании таких глаголов, как PUT и DELETE, WebDAV может перехватить ваш первоначальный запрос. Это означает, что ваш первоначальный запрос никогда не достигнет вашего приложения. - person Khalid Abuhakmeh; 23.12.2011
comment
У вас есть доказательства этого или документы? У меня прямо сейчас установлен WebDAV, и я только что протестировал API с GET, POST, PUT и DELETE. - person one.beat.consumer; 23.12.2011
comment
У меня нет документации Microsoft, подтверждающей это, но вот документ RavenDB, показывающий, что WebDAV может создавать проблемы ravendb.net/faq/405-method-not-allowed - person Khalid Abuhakmeh; 26.12.2011