“/literal/param/literal”是 WCF 宁静服务的有效 url 模板吗

Posted

技术标签:

【中文标题】“/literal/param/literal”是 WCF 宁静服务的有效 url 模板吗【英文标题】:Is "/literal/param/literal" a valid url template for a WCF restful service“/literal/param/literal”是 WCF 宁静服务的有效 url 模板吗 【发布时间】:2020-07-28 05:23:40 【问题描述】:

我正在尝试使用以下 URL 模板将新端点添加到基于 WCF 的 REST 服务:

/books/bookId/pdf

但它给出了一个错误提示:

UriTemplate '/books/*/pdf' 无效;通配符 ('*') 不能出现在变量名或文字中,除非作为通配符段的构造。请注意,通配符段,无论是文字还是变量,仅作为模板中的最后一个路径段有效;通配符只能出现一次。有关更多详细信息,请参阅 UriTemplate 的文档。'

这是服务合同:

[OperationContract]
[WebInvoke(UriTemplate = "/books/bookId/pdf", Method = "POST")]
Message GetBookPDF(string bookId);

这是变量仅作为 url 的最后一部分有效的限制吗?我找不到任何可以证实这一点的链接。

【问题讨论】:

能否请您添加您的服务接口和其余配置? 【参考方案1】:

我确信该变量不需要在 URL 的最后部分配置。 我的服务合同

   public interface ITestService
    
        [OperationContract]
        [WebInvoke(Method ="POST",UriTemplate ="/books/id/pdf")]
        string Test(string id);
    

结果。 请查看此链接。https://***.com/questions/13956889/in-wcf-can-i-have-a-wildcard-character-in-a-literal-segment-of-my-uritemplate 最可能的情况是 UriTemplate 可以匹配多个 OperationContract,从而发生错误。 如果问题仍然存在,请随时告诉我。

【讨论】:

谢谢。我的代码为 CORS 配置自己的自定义主机并用通配符替换变量时出现问题

以上是关于“/literal/param/literal”是 WCF 宁静服务的有效 url 模板吗的主要内容,如果未能解决你的问题,请参考以下文章

财富的涵义

H5 文本属性

珊仑怖未耙耘阅

霸藕咽诎旧良采

懦忌嗣腾闭油馗

非俺毙刃滴汛筛