我使用 Microsoft 的 WCF REST 服务模板 40 在 .NET 4 中创建了 WCF REST(又名 WebHttp)服务。我在 IIS 6 中托管该服务。
服务模板使用 Global.asax 中的 RouteTable 作为创建不包含“.svc”的“干净” URL 的一种方式。例如:
http://localhost/航班/878
GET 和 POST 对这个 URL 工作正常,但 PUT 和 DELETE 会导致 HTTP 501,“未实现”。
如果我像这样创建一个简单的 .svc 文件:
<%@ ServiceHost Language="C#" Debug="true" Service="MyProject.FlightsService"%>
然后我可以对这个 URL 使用 PUT 和 DELETE:
http://localhost/flightservice.svc/878
有谁知道是否有可能让 PUT 和 DELETE 与上面的“干净”URL 对抗?似乎没有办法配置 IIS 来允许这样做,因为没有文件扩展名来配置设置,而且我不想全局允许 PUT 和 DELETE。