2

これは冗長な質問です。100KBを超えるファイルをアップロードしているときにエラーが発生します。

リモートサーバーがエラーを返しました:(413)リクエストエンティティが大きすぎます。

コンテンツをWCFサービス(64ビット環境)に投稿しています。maxReceivedMessageSizeと関連する動作を管理することでこれを解決する必要があることを認識していますが、残念ながらそうではありません。

以下は私の構成です:-

クライアント

     <binding allowCookies="false" bypassProxyOnLocal="false" closeTimeout="00:01:00" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" name="BasicHttpBinding_ICandidateManagementService" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:11:00" textEncoding="utf-8" transferMode="Streamed" useDefaultWebProxy="true">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
           maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="None">
          <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
            <message algorithmSuite="Default" clientCredentialType="UserName"/>
          </security>
        </binding>

 <behavior name="CandidateBehavior">
          <dataContractSerializer maxItemsInObjectGraph="2147483647" />
        </behavior>

<endpoint address="http://localhost:62368/CandidateManagementService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICandidateManagementService" contract="MMJ.ServiceContracts.ServiceContract.ICandidateManagementService" name="BasicHttpBinding_ICandidateManagementService" behaviorConfiguration="CandidateBehavior" />

サービス

<services>
      <service name="BasicHttpBinding_ICandidateManagementService" behaviorConfiguration="CandidateBehavior">
        <endpoint contract="MMJ.ServiceContracts.ServiceContract.ICandidateManagementService" binding="basicHttpBinding" address="" bindingConfiguration="BasicHttpBinding_ICandidateManagementService"/>
      </service>

私はおそらく利用可能なすべてのものを見てきましたが、それでもこの問題を解決することはできません。以下の構成も使用してみましたが、変更はありません...

<serverRuntime uploadReadAheadSize="500000000" maxRequestEntityAllowed="500000000"/>

親切に助けてください!

サービスバインディング構成(クライアントと同じ)

<binding allowCookies="false" bypassProxyOnLocal="false" closeTimeout="00:01:00" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" name="BasicHttpBinding_ICandidateManagementService" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:11:00" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
          <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="32" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647"/>
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
            <message algorithmSuite="Default" clientCredentialType="UserName"/>
          </security>
        </binding>

以下でより多くの洞察を与えるために、フィドラーは見つけています:-

リクエスト数:1バイト送信:85,719(ヘッダー:697;本文:85,022)受信バイト:10,129(ヘッダー:254;本文:9,875)

4

3 に答える 3

3

苦労の末、ようやく問題が解決しました。Service configに欠陥があり、構成を認識していないため、実行時またはコンパイル時のエラーは発生しませんでした。

私のサービス構成は:-

<services>
      <service name="BasicHttpBinding_ICandidateManagementService" behaviorConfiguration="CandidateBehavior">
        <endpoint contract="MMJ.ServiceContracts.ServiceContract.ICandidateManagementService" binding="basicHttpBinding" address="" bindingConfiguration="BasicHttpBinding_ICandidateManagementService"/>
      </service>

サービスの完全修飾名ではない「名前」プロパティがあるため、使用した構成は考慮されておらず、maxReceivedMessageSize にデフォルトの 65KB を使用していました。

私はそれを更新し、魅力のように機能しています。

<services>
  <service name="MMJ.Services.CandidateManagementService">
    <endpoint contract="MMJ.ServiceContracts.ServiceContract.ICandidateManagementService" binding="basicHttpBinding" address="" bindingConfiguration="BasicHttpBinding_ICandidateManagementService"/>
  </service>

また、こちらの投稿も参考にしてください。これがばかげた間違いだったことはわかっています。修正に向けて努力してくれた皆さんに感謝します。

于 2013-03-13T11:24:50.003 に答える
1

データをサーバーに投稿しているため、クライアント設定を更新しても役に立ちません。大きなメッセージを受信するのはクライアントではなく、サーバーです。

于 2013-03-11T14:10:52.603 に答える
0

クライアントエンドポイントを見る:

bindingConfiguration はすべきではありません

bindingConfiguration="BasicHttpBinding_ICandidateManagementService"

それ以外の

bindingConfiguration="BasicHttpBinding_IAdminService"
于 2013-03-11T19:40:03.610 に答える