Как разрешить метод DELETE с IIS Express и веб-API? - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь отправить запрос на удаление в службу веб-API через Fiddler и получаю сообщение об ошибке 405 «Метод не разрешен».

Я много читал об удалении модуля "WebDAV" в web.config и подобных предложениях (WebDAV все равно не включен в моем applicationhost.config), но все, что я пробовал, сработало.

Мой сервис в настоящее время работает на IIS Express 10 (запуск из Visual Studio). У меня есть это в моем файле web.config:

<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler"
    preCondition="integratedMode,runtimeVersionv4.0"/>

Я бы подумал, что кусок verb="*" позволил бы УДАЛИТЬ, но, похоже, он не работает.

Еще одно замечание - когда я проверяю ответ в Fiddler, под заголовком «Безопасность» говорится: Allow: GET, POST.

Я не уверен, где установлен этот параметр «Разрешить» (я новичок в Web API).

Любая помощь будет принята с благодарностью. Пожалуйста, дайте мне знать, какая еще информация вам нужна от меня, и я добавлю ее.

Спасибо!

Ответы [ 3 ]

1 голос
/ 17 марта 2019

Только что воспроизвел это, создав новый проект webapi [targeting .net framework 4.7.1]

Через Fiddler я могу поразить конечную точку DELETE без каких-либо изменений в web.config.

Пожалуйста, убедитесь, чтоиспользуйте правильную конечную точку, включая параметр id.

например, http:localhost:xxxx/api/values/id // пожалуйста, укажите id, а xxxx - номер порта.

Если http:localhost:xxxx/api/values используется без id, я получаю тот же результат 405 Method Not Allowed

Надеюсь, это поможет.

1 голос
/ 17 марта 2019

Вы можете изменить IIS Express applicationHost.config в папке %userprofile%\documents\IISExpress\config.Чтобы включить PUT и DELETE для URL-адресов без расширений, прокрутите вниз до файла IIS Express applicationHost.config и найдите запись обработчика, которая начинается с: <add name="ExtensionlessUrl-Integrated-4.0"....В атрибут "глагол" добавьте PUT и DELETE, чтобы атрибут "глагол" выглядел следующим образом: verb = "GET, HEAD, POST, DEBUG, PUT, DELETE"

0 голосов
/ 17 марта 2019

Обновите свою веб-конфигурацию следующим образом

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true">
        <remove name="WebDAVModule"/> <!-- ADD THIS -->
    </modules>
...