2013-04-03 111 views
0

我有一個具有服務操作的實例WCF數據服務。WCF數據服務:呼叫服務操作

[WebGet] 
    public IQueryable<long> TestMethod() { 
     long[] instanceNumberArray = new long[] { 1 }; 
     return instanceNumberArray.AsQueryable(); 
    } 

我嘗試調用它是這樣的:

Uri EndPointAddressUri = new Uri(@"http://localhost:9227/ReviewServiceWDS.svc/"); 
DataServiceContext context = new DataServiceContext(EndPointAddressUri); 
DataServiceQuery<long> query = context.CreateQuery<long>("TestMethod"); 
var result = query.Execute(); 
var value = result.FirstOrDefault(); 

在最後一排我捕捉到了異常:

錯誤處理響應流。 XML元素包含混合內容。

在同一時間的Internet Explorer返回:

<TestMethod> <element p2:type="Edm.Int64">1</element> </TestMethod>

我怎樣才能解決這個問題?

回答

0

DataServiceContext.CreateQuery僅將EntitySetName作爲參數。您需要使用DataServiceContext.Execute來調用服務操作。

+0

此外,您正在使用哪個版本的WCF數據服務(Microsoft.Data.Services.Client)?確保您使用的是最新的軟件包(5.4RTM)。你可以從Nuget.org下載它。 – Pratik

+0

非常感謝,辛西婭! 我必須更有效地閱讀MSDN。 http://msdn.microsoft.com/en-us/library/hh230677.aspx 謝謝Pratik。 我使用5.3版本。我不知道這個版本。 – Jovanny