DELETE и PUT запросы к методам ASP.NET MVC контроллера

На сайте ASP.NET MVC есть контроллер с методами:

[HttpGet]
public void Get(int? id) {
// получение объекта
}

[HttpPost]
public void Create(Model model) {
// создание объекта
}

[HttpDelete]
public void Delete(int? id) {
// удаление объекта
}

[HttpPut]
public void Update(int? id, Model model) {
// изменение объекта
}

При обращении к методам AJAX-запросам GET и POST работают корректно, но методы DELETE и PUT не выполняются — возвращается ошибка 401 Unauthorized.

Возможны несколько вариантов решения этой проблемы.

Удалить модуль WebDAV на сервере, где хостится сайт

Удаление выполняется через диспетчер сервера: Win 2012: Управление -> Удалить роли и компоненты. Выбираете текущий сервер.
В списке ролей сервера необходимо убрать галочку с пункта «Публикация WebDAV» 0px

Указать в web.config сайта не использовать модуль WebDAV

В web.config добавить:

<configuration>
  ...
  <system.webServer>
    <modules>
      <remove name="WebDAVModule" />
    </modules>
    <handlers>
      <remove name="WebDAV" />
    </handlers>
      ...
  </system.webServer>
</configuration>

Добавить в web.config настройку runAllManagedModulesForAllRequests

В web.config добавить:

<configuration>
  ...
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    ...
  </system.webServer>
</configuration>

Изменить проверку подлинности сайта

При создании сайта на IIS по-умолчанию включена анонимная проверка подлинности. В некоторых случаях возможно решение проблемы с DELETE и PUT запросами изменением проверки подлинности на другую. Например, Windows или проверку подлинности с помощью форм.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.