2013-04-03 75 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