2012-02-09 79 views
1

我使用WCF作爲客戶端來聯繫接受和返回JSON數據的REST服務。wcf json客戶端跟蹤正斜槓轉義

服務位於http://127.0.0.1/REST/get_details/- 注意向前後斜線

不幸的是WCF逃脫後斜線調用URL,以便在調用之前失敗。我不能使用WebInvoke的UriTemplate屬性,因爲這是一個webscript調用,所以它不允許和行動ReplyAction的 [OperationContract的]是爲SOAP不休息,所以我也不能使用它們。

不正確的URL此調用的結果是:/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

幸運的是,我能夠問另一端的開發人員不需要正斜槓,但我仍然想看看是否有人有更好的解決方案。你並不總是能夠要求改變這些事情。 – 2012-02-09 14:44:11

+0

你真的應該放棄斜線,這是沒有必要的,並且會導致你發現的混亂。 ;-) – SliverNinja 2012-02-09 14:55:25

回答

1

啊......我沒有正確使用配置標籤。您只能在服務端點而不是客戶端端點上指定。在客戶端中實現的端點上指定它是沒有意義的。

「此元素啓用終端行爲,使得可以從ASP.NET AJAX網頁使用服務。」 http://msdn.microsoft.com/en-us/library/bb675191.aspx