我在服务器上遇到以下错误(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都有同样的问题
*查看错误消息类型'System.Threading.Tasks.Task`1 [FundingReportData []]'
无法序列化。 我调用了三种不同的方法,它们有三种返回类型。但是这三种方法的错误信息相同
*我猜错误完全是误导。我提到了datacontract和datamember属性
适当
资金报告错误: 类型'System.Threading.Tasks.Task`1 [FundingReportData []]'无法序列化 。请考虑使用DataContractAttribute属性对其进行标记,并使用DataMemberAttribute属性标记要序列化的所有成员。如果类型是集合,请考虑使用CollectionDataContractAttribute对其进行标记。有关其他受支持的类型,请参阅Microsoft .NET Framework文档。
Bording Report错误: 类型'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);
}
知道这里出了什么问题吗?!