Я создал службу WCF REST (он же WebHttp) в .NET 4, используя шаблон 40 службы Microsoft WCF REST. Я размещаю службу в 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 глобально.