1

我的服务器(Windows 2008 Framework 4)出现以下错误。

类型'System.Threading.Tasks.Task1[FundingReportData[]]'` 无法序列化。考虑使用 DataContractAttribute 属性对其进行标记,并使用 DataMemberAttribute 属性标记您想要序列化的所有成员。如果该类型是一个集合,请考虑使用 CollectionDataContractAttribute 对其进行标记。有关其他支持的类型,请参阅 Microsoft .NET Framework 文档。

几个观察: * 它在我的本地机器上运行良好(安装了 Windows 7,Framework 4.5)
* 我没有调用异步方法 EX:UnderWritngReportData[] uwData = client.RetriveUnderwritingAuditReport(reportDate);
* Net.TCP 和 basicHttpBindings 有同样的问题
* 查看错误消息 Type 'System.Threading.Tasks.Task`1[FundingReportData[]]' cannot be serialized。 我调用了三种不同的方法,它们具有三种返回类型。但是这三种方法的错误信息都是一样的
*我猜这个错误是完全误导的。我正确地提到了 datacontract 和 datamember 属性

资金报告错误:类型 'System.Threading.Tasks.Task`1[FundingReportData[]]' 无法序列化。考虑使用 DataContractAttribute 属性对其进行标记,并使用 DataMemberAttribute 属性标记您想要序列化的所有成员。如果该类型是一个集合,请考虑使用 CollectionDataContractAttribute 对其进行标记。有关其他支持的类型,请参阅 Microsoft .NET Framework 文档。

Bording 报告错误:类型 'System.Threading.Tasks.Task`1[FundingReportData[]]' 无法序列化。考虑使用 DataContractAttribute 属性对其进行标记,并使用 DataMemberAttribute 属性标记您想要序列化的所有成员。如果该类型是一个集合,请考虑使用 CollectionDataContractAttribute 对其进行标记。有关其他支持的类型,请参阅 Microsoft .NET Framework 文档。

UW 报告错误:无法序列化类型“System.Threading.Tasks.Task`1[FundingReportData[]]”。考虑使用 DataContractAttribute 属性对其进行标记,并使用 DataMemberAttribute 属性标记您想要序列化的所有成员。如果该类型是一个集合,请考虑使用 CollectionDataContractAttribute 对其进行标记。有关其他支持的类型,请参阅 Microsoft .NET Framework 文档。

我的 WCF 合同:

public interface IReportService {
        [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IReportService/RetriveFundingReport", ReplyAction = "http://tempuri.org/IReportService/RetriveFundingReportResponse")]
        FundingReportData[] RetriveFundingReport(System.DateTime Reportdate);

        [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IReportService/RetriveFundingReport", ReplyAction = "http://tempuri.org/IReportService/RetriveFundingReportResponse")]
        System.Threading.Tasks.Task<FundingReportData[]> RetriveFundingReportAsync(System.DateTime Reportdate);

        [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IReportService/RetriveBordingReport", ReplyAction = "http://tempuri.org/IReportService/RetriveBordingReportResponse")]
        BordingReportData[] RetriveBordingReport(System.DateTime Reportdate);

        [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IReportService/RetriveBordingReport", ReplyAction = "http://tempuri.org/IReportService/RetriveBordingReportResponse")]
        System.Threading.Tasks.Task<BordingReportData[]> RetriveBordingReportAsync(System.DateTime Reportdate);

        [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IReportService/RetriveUnderwritingAuditReport", ReplyAction = "http://tempuri.org/IReportService/RetriveUnderwritingAuditReportResponse")]
        UnderWritngReportData[] RetriveUnderwritingAuditReport(System.DateTime Reportdate);

        [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IReportService/RetriveUnderwritingAuditReport", ReplyAction = "http://tempuri.org/IReportService/RetriveUnderwritingAuditReportResponse")]
        System.Threading.Tasks.Task<UnderWritngReportData[]> RetriveUnderwritingAuditReportAsync(System.DateTime Reportdate);
    }

知道这里出了什么问题吗?!

4

0 回答 0