0

WCF/ASP.NETでホストされるWebサービスがあります。サービスコントラクトのデータ型はXSD.exeで生成された型を使用するため、XmlSerialization属性で装飾されています。パラメータの使用を含め、SvcUtilを使用してクライアントを作成しました/ser:XmlSerializer。長年働いています。

ビルドスクリプトをアップグレードして、VS2012とv8.0A Windows / .NET SDK NETFX 4.0ツールバージョンのSvcUtil.exe(v 4.0.30319.17929)を使用するようにしました。

クライアント(VS2012および新しい8.0ASvcUtilで構築された)がWCFサービスを呼び出そうとすると、奇妙なエラーメッセージが表示されます。

Type 'System.Threading.Tasks.Task1[MyNamespace.MyClient.MyDataStructure]' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. If the type is a collection, consider marking it with the CollectionDataContractAttribute. See the Microsoft .NET Framework documentation for other supported types.

このエラーにより、アプリケーションはWCFサービスを呼び出すことができなくなり、スタックします。

のSvcUtilにパラメータを渡していないことに注意してください/async。また、.NET SDK 8.0A(v 4.0.30319.17929)のSvcUtilヘルプは、デフォルトがとの間に組み込みの切断があることを示していることにも注意してgenerate synchronous and task-based asynchronous method signatures. ください。System.Threading.TaskXmlSerializer

DataContractSerializationランタイムが意図したときに使用しているとどういうわけか考えないようにする方法についての提案はありますXmlSerializationか?

4

1 に答える 1

1

ここに投稿されたMicrosoftからの回答があります。

短いのは、 .NET 4.5でビルドするつもりであるが、.NET4ランタイムをターゲット/syncOnlyにする場合に必要になるということです。SvcUtil

于 2013-02-21T17:51:16.523 に答える