1

長いタイトルでごめんなさい。

Dynamics Connector を使用して取り組んでいる統合プロジェクトをテストするために、C# で Dynamics AX の単体テスト フレームワークを作成しています。

タイムシート テストの基本構造は次のとおりです。

  1. データベースのスナップショットを作成します (AX はモック オブジェクトを許可しません)。
  2. AX インスタンスにログオンし、顧客、プロジェクトなどの基本データを作成します... ログオフ
  3. テスト用のタイムシート アイテムを作成する
  4. ドキュメント サービスへの呼び出しを使用してタイムシートを投稿する
  5. タイムシートを取得する
  6. 主張する

一部のテストでは、ポイント 5 で次のようなエラー メッセージが表示されます。

System.ServiceModel.CommunicationException: 受信メッセージの最大メッセージ サイズ クォータ (65536) を超えました。クォータを増やすには、適切なバインド要素で MaxReceivedMessageSize プロパティを使用します。---> System.ServiceModel.QuotaExceededException: 受信メッセージの最大メッセージ サイズ クォータ (65536) を超えました。クォータを増やすには、適切なバインド要素で MaxReceivedMessageSize プロパティを使用します。

2 つの異なるエラーのように聞こえるため、メッセージを 2 つに分割しました

TestCleanup メソッド ... 例外がスローされました。System.ServiceModel.CommunicationObjectFaultedException: System.ServiceModel.CommunicationObjectFaultedException: 通信オブジェクト System.ServiceModel.Channels.ServiceChannel は、Faulted 状態であるため、通信に使用できません。

AIF を使用している場合、バインディング xml がどこにも表示されないため、上部の部分を実行できません (私たちの知る限り)。

奇妙なことに、このエラーは一貫して発生していないように見えますが、テストで確認できるすべてのものをクリーンアップしています。

誰でも私を助けることができますか?試してみることを提案しているだけでも。

注意すべきもう 1 つのことは、これらのエラーが非常に頻繁にダイナミクス ax サービスをクラッシュさせ、それをデバッグするのが裏側で完全な苦痛になることです。

4

1 に答える 1

3

AIF ポートの構成を変更します。maxReceivedMessageSizeバインディングの を変更する必要があります。

例:

<configuration>
  <system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding name="DefaultServiceGroupBinding" 
            maxReceivedMessageSize="104857600" 
            ...
        />
      </netTcpBinding>
    </bindings>
    ...
<configuration>

AIF WCF バインディング構成

于 2014-10-30T10:07:15.427 に答える