2

返されるオブジェクトが多すぎると、例外が発生します。

メッセージを逆シリアル化しようとしているときにフォーマッタが例外をスローしました: パラメータhttp://.../Contract:GetBlaBlaResultを逆シリアル化しようとしているときにエラーが発生しました。InnerException メッセージは、「オブジェクト グラフでシリアライズまたはデシリアライズできる項目の最大数は 65536 です」でした。オブジェクト グラフを変更するか、MaxItemsInObjectGraph クォータを増やしてください。'。詳細については、InnerException を参照してください。

私はそれを調べて、サーバー側の動作の下に追加しました:

<behaviors>
   <serviceBehaviors>
      <behavior name="MyServiceBehavior">
         <dataContractSerializer maxItemsInObjectGraph="2147483646"/>

        ...

そしてクライアント側では:

<behaviors>
   <endpointBehaviors>
       <behavior name="maxItems">
          <dataContractSerializer maxItemsInObjectGraph="2147483646" />
       </behavior>
   </endpointBehaviors>
</behaviors>

しかし、それは無視され、例外が発生し続けているようです。

問題は、XmlSerializer (要素の属性用) を使用することです。

[ServiceContract(Namespace = "http://BlaBla.com/webservices/BlaBlaService")]
[XmlSerializerFormat(SupportFaults = true)]
public interface IBlaBlaServices
{
    [OperationContract]
    BlaBlaResponse GetBlaBla(BlaBlaRequestMessage searchBlaBlaRequest);
}

ご覧のとおり、例外は dataContractSerializer を参照しています (上記で追加した構成も同様です)。

物事を台無しにするのは XmlSerializer ですか?

誰かアドバイスをお願いできますか?

どうもありがとう :)

4

1 に答える 1

2

念のため、MyServiceBehavior 動作をサービス構成のサービス定義に適用し、maxItems 動作をクライアント構成 (behaviorConfiguration 属性) のエンドポイント定義に適用していますか?

于 2010-08-31T14:04:31.910 に答える