由于返回数据类型,WCF服务无法正常工作?

时间:2013-05-08 08:42:09

标签: wcf silverlight wcf-ria-services

我用两种方法创建了一个WCF服务:

[ServiceContract(Namespace = "")]
[SilverlightFaultBehavior]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyDataService
{
    [OperationContract]
    public IQueryable<object> Service1()
    {
        PivotData pivot = new PivotData();
        IQueryable<object> list = pivot.GeneratePivotData();
        return list;
    }
[OperationContract]
public string Service2()
{
    return "hello";
}

}

Service2完美无缺。但是,service1返回可怕的 “远程服务器返回错误:未找到”

我认为它与返回类型IQueryable<object>有关,但我不知道应该改变什么来使它工作。我尝试了List<string>ObservableCollection<object>和其他一些但无济于事。

我应该怎样做才能将我的数据传回客户端?

由于

1 个答案:

答案 0 :(得分:1)

取决于与Aron的问题和对话。

我认为这是WCF-Ria服务如果是,请重新提出问题,否则您可能会忽略此答案。

请尝试以下代码。

除非你使用ria服务。您应该使用[Association("FK_assos_name", "field", "field")] [Include]来表示复杂属性,而您的基类应该至少有一个[Key]属性字段。比如ID。

[OperationContract]
public BaseClass[] ServiceMethod1()
{
    PivotData pivot = new PivotData();
    IQueryable<object> list = pivot.GeneratePivotData();
    return list.ToArray();
}

如果您仍然遇到错误跟踪;在您的web.config中添加以下行。然后使用svclog viewer打开WcfDetailTrace.svclog。红色部分会告诉你出了什么问题。

<system.diagnostics> 
<trace autoflush="true"> 
    <listeners> 
    </listeners> 
</trace> 
<sources> 
    <source name="System.ServiceModel" 
            switchValue="Information, ActivityTracing" 
            propagateActivity="true"> 
        <listeners> 
            <add name="sdt" 
                 type="System.Diagnostics.XmlWriterTraceListener" 
                 initializeData= "WcfDetailTrace.svclog" /> 
        </listeners> 
    </source> 
</sources>