.NET4.5におけるWCFにおけるデフォルト生成のbasicHttpsBindingの研究

2693 ワード

起因:
使用するnet4.5空白のWCFサービスを確立した.デフォルトで使用されるバインディング構成はbasicHttpsBindingです.
問題の発見:
1.クライアントでサービス参照を行い、バインディング構成がbasicHttpBindingであるデフォルトのプロファイルを生成する.
2、大量のデータを一度に渡す必要があるため、バインディング構成を修正し、以下のようにする.
   <basicHttpBinding>
        <binding name="BasicHttpBinding_IService" closeTimeout="00:10:00" receiveTimeout="00:10:00"
                sendTimeout="00:10:00"  maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" >
          <readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
        </binding>
      </basicHttpBinding>

3、テストを実行し、常に「413 Request Entity Too Large」というメッセージを表示します.ネット上で資料を探して、基本的にすべてデフォルトのSizeを修正すると言って、デフォルトは4 Mで、十分に大きいまで修正すればいいです.しかし、私はすでにサービス側とクライアントを変更したのに??
問題解決:
長い間研究してやっと解決したので,直接結果を話しましょう.
はい.Net 4.5のフレームワークでは、デフォルトで生成されるバインド構成はbasicHttpsBindingであり、Httpsであり、Sが1つ増えている.
しかし、私がサービス側で修正したのはHTTPSのバインド構成で、HTTPのバインド構成は書いていませんが、クライアントではHTTPを使っています.そのため、最終的にはデフォルトのHTTP構成を使用し、サイズは4 Mで、データ量が大きいと、自然にエラーが発生します.
ここまで言えば、解決策は明らかだ.
終了:
HTTP方式はまだ効率が低いので、明日TCPを使ってみます.