0

2 つの方法で 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は恐ろしい「リモートサーバーがエラーを返しました:見つかりません」を返します

return type に関係していると思いますが、IQueryable<object>機能させるために何を変更すればよいかわかりません。List<string>、および他のいくつかを試しObservableCollection<object>ましたが、役に立ちませんでした。

データをクライアントに戻すにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

アロンとの質問や会話次第。

私はそれがWCF-Ria Servicesだと思っていました 。そうであれば、質問にタグを付け直してください。

以下のコードを試してください。

リアサービスを利用する場合のほかに。複雑なプロパティには を使用する必要が[Association("FK_assos_name", "field", "field")] [Include]あり、基本クラスには少なくとも 1 つの[Key]属性付きフィールドが必要です。IDなど。

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

それでもエラーが発生する場合は、トレースしてください。web.config に以下の行を追加してください。次に、svclog ビューアーで 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> 

于 2013-05-08T10:00:40.813 に答える