0

WCF サービスで wsDualHttpBinding エンドポイントを動作させることができません。クライアントでこの問題に直面しています。

MaxArrayLength を 16384 からインクリメントして、xml データ全体を読み取れるようにすることを提案する例外が発生します。

次の構成を試しました。

 <system.serviceModel>
    <bindings>
      <wsDualHttpBinding>
        <binding name="MyBinding" maxReceivedMessageSize="2147483647" />
      </wsDualHttpBinding>
    </bindings>

    <client>
      <endpoint name="WSDualHttpBinding_IDataService" binding="wsDualHttpBinding" bindingConfiguration="MyBinding"
        address="http://localhost:8733/DataProvider/" contract="DataStorageService.IDataService" >
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>

しかし、上記の設定は無視されているようです。

次のようにクライアントをインスタンス化します。

  var instanceContext = new InstanceContext( new CallbackHandler() );
  _clientService = new DataServiceClient( instanceContext );

そして、これらのコード行が app.config の構成をオーバーライドすることをどこかで読みました。それが問題でない場合、どうすればクォータを増やすことができますか?

どんな助けでも感謝します。

4

2 に答える 2

2

maxReceivedMessageSize 以上を構成する必要があります。Jonathan Coffey が言ったように、BytePerRead、TableCharCount、StringContentLenght などがあります。readerQuotas も構成する必要があります

クライアントを構成したのとまったく同じ方法でサーバーを構成する必要があることに注意してください。もちろん、maxbytearraylengh を maxreceivedmessagesize よりも大きく設定することはできません。たとえば、サーバーに同じ MaxReceivedMessageSize などがない場合、期待どおりに機能しません。

GL。

于 2016-09-20T14:24:35.007 に答える
1

あなたはエラーがあなたに言うことを正確に行います:)

これについては、コードをコピーして貼り付けるよりも、視覚的に方法を確認するのが最善かもしれません。

プロジェクトで、サービス "app.config" を右クリックし、そこから "Edit WCF Configuration" を選択して "Bindings" をクリックすると、カスタム バインディングが表示されます。そうでない場合は、右クリックして新しいバインドを作成します。ここから、私が使用する「ReaderQuotas Properties」を変更できます

MaxArrayLength = 2147483647
MaxBytesPerRead = 4096
MaxDepth = 32
MaxNameTableCharCount = 2147483647
MaxStringContentLength = 2147483647

それが完了したら、先に進み、「ファイル」を押してから「保存」を押します

app.config コードを表示すると、更新されているはずです。

サービスを実行してから、サービス参照を右クリックし、[サービス参照の更新] をクリックします。

クライアントの app.config ファイルを見ると、サービスの app.config 属性がどのように見えるかが一致するはずです。そうでない場合は、クライアントの app.config を右クリックし、[WCF 構成の編集] をもう一度クリックして、バインディングに移動し、サービス エンドポイントを選択して、値をサービスと同じに変更します。

ただし、値を高く設定すると、ddos 攻撃などに対して脆弱になることに注意してください。必要なものを見つけて、テスト後に変更してください。

お役に立てれば :)

サービスが管理者としても実行されていることを確認してください

于 2016-09-19T16:30:51.817 に答える