2012-09-19 134 views
8

我有一个自托管的WCF服务通过HTTPS接受消息。HTTP 413请求实体太大在自托管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 

我没有尝试上传的文件,只需发送一个XML/SOAP消息,这是78KB。我已经尝试加大我的最大消息和缓冲区大小,但无济于事。

<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,文化=中性

+0

启用[WCF跟踪](http://msdn.microsoft.com/en-us/library/ms733025(V = VS.100) .aspx)来查看该消息是否由WCF处理。该消息看起来像来自HTTP主机组件,而不是WCF管道。 –

+0

@SixtoSaez - 我已经添加了WCF跟踪日志信息。 – Fenton

回答

6

正如我在逃避问题来,这是有很大关系到绑定配置。特别是,maxReceivedMessageSize。

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

这是改变(可能不把事情相当这么大,虽然,因为它会让你可能会遭受拒绝服务攻击),正确的区域。根据你的实际信息确定一个合理的价值。

的出站端点配置正确,但入站终点是不是 - 它是:

<httpsTransport requireClientCertificate="true" /> 

这就意味着它是使用的65536默认值,发送的消息,该消息是不够的。所以真的很仔细地检查端点的情况,尤其是如果它们被命名的话。

+1

Steve我知道你回答这个问题已经有一段时间了,但是你能否详细说明你的出站端口和入站端点的含义?谢谢。 – antscode

+1

这一切都有点阴霾。感谢上天的轻量级REST服务,我有一段时间没有看过这种东西。尽管如此,我的意思是“出站”=“服务”和“入站”=“呼叫者”(我想!) – Fenton

2

对我来说是的maxRequestLength下的System.Web:

<system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    <customErrors mode="Off"/> 
    <httpRuntime 
     maxRequestLength="2147483647" 
     executionTimeout="300" /> 
</system.web> 
相关问题