【发布时间】:2012-06-23 02:50:14
【问题描述】:
WCF REST Web 服务提供以下格式的查找:
https://mysite/mycontract/search/{searchtext}
hello 或 hello%20world 的搜索文本,服务执行正确。但是,当使用 https://mysite/mycontract/search/hello%20 中以空格结尾的文本时,服务将失败并返回 404。没有自定义路由。
wcf 路由中的哪些限制会导致此问题,以及可用的解决方法(最好是更改 uri 结构除外)?
使用其他实施信息进行编辑:
合约
[ServiceContract(SessionMode = SessionMode.NotAllowed)]
public interface IPointOfSale
{
.......
[WebInvoke(UriTemplate = "search/{SKU}", Method = "GET")]
System.Xml.Linq.XElement ProductLookup(string SKU);
}
方法
public XElement ProductLookup(string SKU)
{
//product search here.
}
【问题讨论】:
-
我无法在我的 WCF REST 服务中重现这一点(我在 URL 末尾正确地使用 %20 进行路由),你能提供一个例子吗?
-
@EkoostikMartin 我认为关键是它不在查询字符串中,而是在路线的末尾——你能看看这是否会影响你的结果吗?
-
你是对的,我修改了我的 URI 看起来像你的,我得到了 404
标签: wcf c#-4.0 http-status-code-404 wcf-rest