Служба REST WCF без расширения возвращает http 405 для метода PUT - PullRequest
2 голосов
/ 11 ноября 2011

У меня есть служба WCF REST, работающая локально под IIS6, написанная в VS2008 (3.5).

Отображение ISAPI asp.net для файла svc настроено на прием всех глаголов. Я включил сопоставление сценариев с подстановочными знаками, чтобы позволить URI без расширений работать со службой через перезапись URL.

Так что запуск PUT для службы rest с указанным файлом .svc работает нормально. Делая то же самое с опущенным svc возвращает 405.

1007 * т.е. *

http://thehost/therestmethod = 405 http://thehost/theservice.svc/therestmethod = 200

Все версии, написанные по URL, работают с PUT, являющимся единственным исключением! При попытке ввода PUT для версии без расширения я ударил URL-адрес rewrite, но произошли ошибки, поэтому я знаю, что перезапись прошла успешно.

Я пытался использовать трассировку WCF, но это не регистрирует ошибку. Кажется, это далеко не уходит?!?!

1 Ответ

0 голосов
/ 11 ноября 2011

Взято из здесь :

Глаголы HTTP: хотя большинство брандмауэров и веб-клиентов допускают глаголы HTTP GET и POST, некоторые из них не поддерживают PUT, DELETE и другие глаголы,Чтобы разрешить вызов таких неподдерживаемых глаголов, обычной практикой является использование HTTP-заголовка X-HTTP-Method-Override в запросе POST для указания метода, который вы хотите вызвать.Пример XHttpMethodOverride описывает, как реализовать эту функцию.

Я полагаю, что что-то не совсем выровнено в коде проверки перезаписи URL-адреса IIS / разрешено.
Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...