(413) 使用 WCF 请求实体太大错误
Posted
技术标签:
【中文标题】(413) 使用 WCF 请求实体太大错误【英文标题】:(413) Request Entity Too Large error with WCF 【发布时间】:2012-11-14 02:02:21 【问题描述】:我正在尝试构建一个允许用户上传文件的 WCF 服务,文件的最大大小限制为 2mb。我将 byte[] 传递给服务,但不断收到以下错误: System.Net.WebException:远程服务器返回错误:(413)请求实体太大。
我能够发送 1kb 和 10kb 的文件,但是当我尝试 82kb 等较大的文件时,我得到了那个错误。我浏览了一些以前的帖子,但似乎无法找到我做错了什么,我也尝试调整我的配置中的设置,设置最大值以查看是否有帮助,但没有任何效果迄今为止。有人可以看看我有什么,看看我是否遗漏了什么,或者这是与 IIS (7.5) 相关的东西,而不是我的 web.config?
这也不使用 SSL。
WCF 配置:
<services>
<service name="DSLDService.DSLDService">
<endpoint binding="basicHttpBinding" bindingConfiguration=""
contract="DSLDService.IDocument" />
</service>
</services>
Web 应用程序配置:
<endpoint address="http://xxx/DSLDService/DSLDService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IDocument"
contract="DSLDServiceReference.IDocument" name="" />
和
<binding name="BasicHttpBinding_IDocument" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="2147483647" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647" useDefaultWebProxy="true">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" />
</binding>
谢谢。
【问题讨论】:
客户端是否也有相同的 readerQuotas 值? maxReceivedMessageSize not fixing 413: Request Entity Too Large的可能重复 【参考方案1】:您需要为您的服务和客户端(这就是您现在所拥有的)进行绑定配置,您可以在其中定义最大大小,否则默认为 64 kb。
【讨论】:
我更新了服务中的代码,以上是关于(413) 使用 WCF 请求实体太大错误的主要内容,如果未能解决你的问题,请参考以下文章
具有 30mb 输入字符串的 WCF 服务 - 远程服务器返回错误:(413)请求实体太大
WCF 413 请求实体太大 - 自托管 WebHttpBinding