WCF 休息 | URL 参数不起作用 GetProduct/productid/format

Posted

技术标签:

【中文标题】WCF 休息 | URL 参数不起作用 GetProduct/productid/format【英文标题】:WCF Rest | URL parameters not working GetProduct/productid/formatWCF 休息 | URL 参数不起作用 GetProduct/productid/format 【发布时间】:2013-12-15 11:55:29 【问题描述】:

我有一个基于 WCF REST 的服务方法,其 URL 包含两个参数

/GetProduct/productid/*格式

Format 期望“xml”以 xml 格式提供输出,如果未提供任何内容,则以 JSON 格式返回。问题是如果输入格式为“xml”或任何超过 2 个字符的字符串,它会中断并出现异常“长度不能小于零。参数名称:长度”

如果我只给一个像“x”这样的字符,它就可以工作。这很奇怪。对此有何见解。

运营合同

[WebGet(ResponseFormat= WebMessageFormat.Json , BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetProduct/productid/*format")] Product GetProduct(String productid, String格式);

【问题讨论】:

您能否提供一个失败的 URL 示例? 失败:/GetProduct/19/xml 作品:/GetProduct/19/x /GetProduct/19/ 我无法复制它,您如何托管此服务? IIS 并且它在 Sitecore CMS 的完整配置下运行,因此我们可以利用 Sitecore 上下文从中获取数据。 【参考方案1】:

如果您的目标是在不更改任何代码的情况下为服务获取 XML 或 JSON 输出。请看我的回答

WCF REST return single method as JSON and XML

希望对您有所帮助。

【讨论】:

以上是关于WCF 休息 | URL 参数不起作用 GetProduct/productid/format的主要内容,如果未能解决你的问题,请参考以下文章

为啥 WCF 休息服务(不是使用 WCF 休息服务模板创建的)不起作用?

从 jquery 调用 wcf rest 服务不起作用

未找到 WCF 休息方法/操作 - 一切似乎都已正确配置

删除不工作在 WCF 休息服务抛出 (405) 方法不允许

同一端点(svc 文件)上的两个休息式 WCF 合同

WCF 服务 - 自托管服务不起作用