我正在使用WCF作为客户端来联系接受并返回JSON数据的REST服务。
该服务位于 http://127.0.0.1/REST/get_details/ - 请注意正斜杠
不幸的是,WCF在调用url之前转义了正斜杠,因此调用失败。我无法使用WebInvoke的 UriTemplate 属性,因为这是一个webscript调用,因此不允许的操作和 ReplyAction [OperationContract] 适用于SOAP而非REST,所以我也不能使用它们。
此调用产生的错误网址为: / REST / get_details_x002F _
如何阻止WCF弄乱网址?
[ServiceContract(Namespace="http://127.0.0.1/REST/")]
public interface IDetailsSvc
{
[OperationContract(Name = "get_details/")]
[WebInvoke(
Method = "POST",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
DetailsResponse GetDetails(string id);
}
答案 0 :(得分:1)
啊......我没有正确使用配置标签。您只能在服务端点上指定此项,而不是客户端端点。在您正在客户端中实现的端点上指定它是没有意义的。
"此元素启用端点行为,使得可以从ASP.NET AJAX网页使用服务。" http://msdn.microsoft.com/en-us/library/bb675191.aspx