我试图用WCF REST Contrib在 .NET 3.5 中设计一个 REST 服务。我的服务几乎可以正常工作,但我面临一个奇怪的错误。
基本上,我有两种方法:
[WebInvoke(UriTemplate = "/books?id={identity}", Method = "PUT")]
public string InsertBook(string identity, Book book)
{
// snipped
}
和
[WebInvoke(UriTemplate = "/books?id={identity}", Method = "GET")]
public Books[] ListBooks(string identity)
{
// snipped
}
但是我在激活时收到错误消息:
System.InvalidOperationException 未被用户代码处理 Message="UriTemplateTable 不支持具有与模板'/books?id={identity}' 等效路径但具有不同查询字符串的多个模板,其中查询字符串不能全部通过文字值消除歧义.有关更多详细信息,请参阅 UriTemplateTable 的文档。” 来源="系统.ServiceModel.Web"
如果我重命名第二种方法,/books2?identity
那么它可以正常工作。
知道为什么UriTemplateTable
不区分动词吗?