我的服务器(Windows 2008 Framework 4)出现以下错误。
类型'System.Threading.Tasks.Task
1[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);
}
知道这里出了什么问题吗?!