HTTP 413请求实体在自托管WCF服务中太大

Fen*_*ton 8 c# https wcf self-hosting

我有一个自托管WCF服务通过HTTPS接受消息.

正在从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
Run Code Online (Sandbox Code Playgroud)

我没有尝试上传文件,只是发送一个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>
Run Code Online (Sandbox Code Playgroud)

如果我能提供任何其他信息,请告诉我.

WCF跟踪日志

在连接'https:// localhost'上接收字节

活动边界(开始)

连接信息

抛出异常(错误)

例外是:

System.ServiceModel.ProtocolException,System.ServiceModel,Version = 4.0.0.0,Culture = neutral

Fen*_*ton 7

正如我在问题中所提到的,这与绑定配置非常相关.特别是maxReceivedMessageSize.

maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"
Run Code Online (Sandbox Code Playgroud)

这是要更改的正确区域(可能不会让事情变得如此之大,因为它会让您容易受到拒绝服务攻击).根据您的实际消息确定合理的值.

出站端点已正确配置但入站端点未正确配置 - 它是:

<httpsTransport requireClientCertificate="true" />
Run Code Online (Sandbox Code Playgroud)

这意味着它使用默认值65536,这对于发送的消息是不够的.因此,确实需要非常仔细地检查端点,特别是如果它们的名称相似.