1

Webロールで実行されているAzureにWCFサービスを展開しました。Azureは標準です(したがって、.NET 4.0を実行します)。次のエラーが発生します。

Type 'System.Threading.Tasks.Task' 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. 
  • 私のクラスライブラリは.NET4を対象としています
  • Asyncターゲティングパックへの参照があります

エミュレータを介してローカルマシンで実行されます。私のローカルマシンは、.NET4.5を搭載したWindows8です。

これは次のようになります:http: //forums.lhotka.net/forums/t/11585.aspx

これは可能ですか、それとも.NET 4.5をAzureに移行する必要がありますか?

4

1 に答える 1

0

Task が Async 実装 (WCF 4.5 の新機能) に対して返される場合、これは .NET 4.0 ではサポートされていませんでした。.NET 4.0 は IAsyncResult ベースの非同期をサポートします。

Task がデータとして返された場合 (非同期ではなく)、次のことが適用されます。

あなたのサービスは Task を返しますか? タスクは「実行中の作業」であり、「データ」自体ではないため、これは正しくありません。たぶん、プロセスをインプロセスでテストしたので、うまくいきましたか?

System.Threading.Tasks.Task は .NET 4 にも存在します。エラーが示すように、サービスの記述方法では、タスクをシリアル化する必要がありますが、これは実際には不可能です。サービス契約と使用されているデータ型をもう一度確認する必要があります。

于 2012-09-27T04:14:20.350 に答える