首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >(413)请求实体太大| uploadReadAheadSize

(413)请求实体太大| uploadReadAheadSize
EN

Stack Overflow用户
提问于 2012-04-12 19:49:10
回答 11查看 279.7K关注 0票数 151

我用IIS4.0编写了一个.NET服务,它托管在我的Windows7 x64旗舰版系统和IIS7.5上。其中一个服务方法有一个'object‘作为参数,我试图发送一个包含图片的byte[]。只要这张图片的文件大小小于大约。48KB,一切顺利。但是如果我试图上传更大的图片,WCF服务会返回一个错误:(413) Request Entity Too Large.,所以我花了3个小时在谷歌上搜索错误消息,我看到的关于这个主题的每个主题都建议提高'uploadReadAheadSize‘属性。因此,我所做的是使用以下命令(10485760 = 10MB):

"appcmd.exe set config -section:system.webserver/serverruntime/uploadreadaheadsize: 10485760 /commit:apphost"

"cscript adsutil.vbs set w3svc/<APP_ID>/uploadreadaheadsize 10485760"

我还使用了IIS管理器来设置该值,方法是打开站点并转到“管理”下的“配置编辑器”。不幸的是,我仍然得到了请求实体太大的错误,这真的很令人沮丧!

那么有谁知道我还可以尝试修复这个错误吗?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2012-04-12 20:39:33

这不是IIS的问题,而是WCF的问题。WCF默认将消息大小限制为65KB,以避免大消息的拒绝服务攻击。另外,如果您不使用MTOM,它会将byte[]发送到base64编码的字符串(大小增加33%) => 48KB * 1,33 = 64KB

要解决此问题,您必须重新配置您的服务以接受更大的消息。此问题之前触发了400错误请求错误,但在更新的版本中,WCF开始使用413,这是此类错误的正确状态代码。

您需要在绑定中设置maxReceivedMessageSize。您可能还需要设置readerQuotas

<system.serviceModel>
  <bindings>
    <basicHttpBinding>
      <binding maxReceivedMessageSize="10485760">
        <readerQuotas ... />
      </binding>
    </basicHttpBinding>
  </bindings>  
</system.serviceModel>
票数 217
EN

Stack Overflow用户

发布于 2013-06-08 02:30:44

我在使用WCF REST服务的IIS 7.5时也遇到了同样的问题。试图通过POST上传超过65k的任何文件,它将返回错误413“请求实体太大”。

您需要了解的第一件事是在web.config中配置了哪种绑定。这里有一篇很棒的文章。

BasicHttpBinding vs WsHttpBinding vs WebHttpBinding

如果你有一个REST服务,那么你需要将它配置为"webHttpBinding“。修复方法如下:

<system.serviceModel>

<bindings>
   <webHttpBinding>
    <binding 
      maxBufferPoolSize="2147483647" 
      maxReceivedMessageSize="2147483647" 
      maxBufferSize="2147483647" transferMode="Streamed">
    </binding>  
   </webHttpBinding>
</bindings>
票数 61
EN

Stack Overflow用户

发布于 2014-04-04 01:51:14

这帮助我解决了这个问题(为了可读性/可复制性,用一行分隔):

C:\Windows\System32\inetsrv\appcmd  set config "YOUR_WEBSITE_NAME" 
     -section:system.webServer/serverRuntime /uploadReadAheadSize:"2147483647" 
     /commit:apphost
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10122957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档