0

小さなデータで適切に動作する wcf サービスを作成しました。(私の現在の MaxReceivedMessageSize は 10485760 です)。10485760 を超える巨大なデータ (x バイトなど) を送信すると、クライアントがエラーを下回っています。

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

MaxReceivedMessageSize 値を増やすことでこれを修正できることはわかっています。しかし、ここで注意が必要なのは、MaxReceivedMessageSize を 10485760 に保ち、サイズ 2x バイトの応答を送信する場合です。エラーを超える代わりに、構成ファイルで指定されたタイムアウト値の後にクライアントでタイムアウト エラーが発生します。

エラーの下に提供されるサーバー側でのデバッグ

ソケット接続が中止されました。これは、メッセージの処理中にエラーが発生したか、リモート ホストが受信タイムアウトを超過したか、基になるネットワーク リソースの問題が原因である可能性があります。

このため、クライアントは何が問題なのかを知ることができず、それを修正する方法を理解できませんでした.

私の質問は、どちらの場合も MaxReceivedMessageSize を超えるデータを送信していますが、エラーは異なります。なんで?ソケットが閉じられるのではなく、クライアントが「最大メッセージ サイズのクォータを超えました」というエラーを単純に受信できないのはなぜですか?

ソケットが閉じられてクライアントがタイムアウトするのではなく、クライアントにエラーを受け取って MaxReceivedMessageSize 値を修正してもらいたい

ありがとう!

4

1 に答える 1