8

HTTPS 経由でメッセージを受け入れるセルフホスティング WCF サービスがあります。

メッセージが Java アプリケーションから送信され、応答を受信します。

HTTP/1.1 413 Request Entity Too Large
Content-Length: 0
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 19 Sep 2012 09:05:34 GMT
Connection: close

ファイルをアップロードしようとしているのではなく、78kb の XML/SOAP メッセージを送信するだけです。メッセージとバッファの最大サイズを増やしてみましたが、うまくいきませんでした。

  <binding name="SecuredNoProxy" openTimeout="00:00:10" sendTimeout="00:00:10">
      <textMessageEncoding messageVersion="Soap11WSAddressing10" />
      <security includeTimestamp="true" enableUnsecuredResponse="true">
          <localClientSettings timestampValidityDuration="00:15:00" />
      </security>
      <httpsTransport manualAddressing="false" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" allowCookies="false" bypassProxyOnLocal="true" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard" keepAliveEnabled="true" realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false" useDefaultWebProxy="false" requireClientCertificate="true" />
  </binding>

追加情報を提供できるかどうかお知らせください。

WCF トレース ログ

接続「https://localhost」でバイトを受信

活動境界(開始)

接続情報

例外のスロー (エラー)

例外は次のとおりです。

System.ServiceModel.ProtocolException、System.ServiceModel、バージョン = 4.0.0.0、カルチャ = ニュートラル

4

2 に答える 2

7

質問で回避したように、これはバインディング構成に非常に関連しています。特に、maxReceivedMessageSize.

maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"

これは変更するのに適した領域です (サービス拒否攻撃に対して脆弱になる可能性があるため、これほど大きくすることはおそらくありません)。実際のメッセージに基づいて適切な値を決定してください。

送信エンドポイントは正しく構成されていましたが、受信エンドポイントは構成されていませんでした。

<httpsTransport requireClientCertificate="true" />

65536これは、送信されるメッセージには不十分なデフォルト値の を使用していたことを意味します。そのため、特にエンドポイントの名前が似ている場合は、エンドポイントを非常に注意深くチェックする必要があります。

于 2012-09-19T13:19:19.853 に答える
2

私にとっては、system.web の下の maxRequestLength でした。

<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <customErrors mode="Off"/>
    <httpRuntime
        maxRequestLength="2147483647"
        executionTimeout="300" />
</system.web>
于 2013-04-17T15:58:57.597 に答える