Служба REST WCF, размещенная в IIS, не поддерживает PUT и DELETE

Я создал REST WCF (он же WebHttp) службы в .NET 4, используя шаблон службы Microsoft REST WCF 40. Я размещаю службу в IIS 6.

Шаблон службы использует RouteTable в Global.asax как способ создания «чистых» URL, которые не включите в них ".svc". Например:

http: // localhost / flight / 878

GET и POST отлично работают с этим URL, но PUT и DELETE приводят к HTTP 501, «Не реализовано».

Если я создаю простой файл .svc, подобный этому:

<%@ ServiceHost Language="C#" Debug="true" Service="MyProject.FlightsService"%>

тогда я могу использовать PUT и DELETE для этого URL:

http: // localhost / flightservice.svc / 878

Кто-нибудь знает, возможно ли заставить PUT и DELETE работать с «чистым» URL выше? Кажется, что нет способа настроить IIS, чтобы разрешить это, потому что нет расширения файла для настройки параметров, и я не хочу разрешать PUT и DELETE глобально.

8
задан Brian Tompsett - 汤莱恩 9 July 2015 в 11:12
поделиться

1 ответ

Я давно не работал с IIS6 (и у меня он не установлен, поэтому я теряю память), но мне пришлось реализовать что-то подобное с IIS6 для маршрутизация URL-адресов без расширений в IIS6.

Вы можете включить сопоставление сценариев с подстановочными знаками для каждой папки, взломав диспетчер IIS. Я следил за этой записью в блоге , и она работает очень хорошо (и эта ссылка дает немного больше информации). Это действительно ошибка в диспетчере, а не в самом IIS (по крайней мере, так я себе говорю).

Можете ли вы ссылаться на свои службы в подпапке на вашем сайте (например, http: // localhost / services / flight / 878 )? Если это так, и если вы реализуете взлом IIS Manager, описанный выше, я думаю, вы можете включить все HTTP-команды для этого каталога. Опять же, я теряю память (а мы реализовали только GET и POST, поэтому я не занимался PUT и DELETE), поэтому я надеюсь, что у меня все правильно.

Дайте мне знать, если вам понадобится дополнительная информация, или если я ускользаю из памяти. :) Надеюсь, это поможет!

4
ответ дан 5 December 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: