当前位置: 首页 > 知识库问答 >
问题:

(413)请求实体太大

子车安和
2023-03-14

我已经用编写了一个WCF服务。NET 4.0,它托管在我的Windows 7x64Ultimate系统上,带有IIS 7.5。其中一个服务方法有一个'object'作为参数,我正试图发送一个包含图片的字节[]。只要这张图片的文件大小小于约48KB,一切正常。但是,如果我试图上传更大的图片,WCF服务将返回一个错误:(413)请求实体太大 当然,我花了3个小时在谷歌上搜索错误消息,我看到的关于这个主题的每一个主题都建议提高“uploadReadAheadSize”属性。因此,我所做的是使用以下命令(10485760=10MB):

“appcmd.exe设置配置-部分:system.webserver/serverruntime/uploadreadaheadsize:10485760/commit:apphost”

"ccriptadsutil.vbs设置w3svc/

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

有人知道我还能做些什么来修复这个错误吗?


共有3个答案

傅和璧
2023-03-14
匿名用户

我遇到了同样的问题,设置uploadReadAheadSize解决了这个问题:

http://www.iis.net/configreference/system.webserver/serverruntime

“该值必须介于0和2147483647之间。”

很容易在applicationHost中设置它。如果不想执行cmd操作,请配置fle。

它位于WindowsFOLDER\System32\inetsrv\config(2008服务器)中。

你必须用记事本打开它。首先对文件进行备份。

根据配置中的注释,建议使用位置标签解锁部分:

<location path="Default Web Site" overrideMode="Allow">
    <system.webServer>
        <asp />
    </system.webServer>
</location>"

所以你可以写在底部(因为它以前不存在)。我在这里写maxvalue-如果你愿意,写你自己的值。

<location path="THENAMEOFTHESITEYOUHAVE" overrideMode="Allow">
    <system.webServer>
        <asp />
        <serverRuntime uploadReadAheadSize="2147483647" />
    </system.webServer>
</location>

如果你把它放在最后一个

希望这能解决你的问题。对我来说,这是一个SSL开销问题,太多的post冻结了应用程序,导致(413)请求实体出现过大错误。

西门骁
2023-03-14

我在IIS7.5和WCF REST服务中遇到了同样的问题。试图通过POST上传任何超过65k的文件,将返回错误413“请求实体太大”。

您需要了解的第一件事是您在web中配置了什么样的绑定。配置。这里有一篇很棒的文章。。。

BasicHttpBinding vs WsHttpBinding vs WebHttpBinding

如果您有REST服务,则需要将其配置为“webHttpBinding”。以下是修复方法:

<system.serviceModel>

<bindings>
   <webHttpBinding>
    <binding 
      maxBufferPoolSize="2147483647" 
      maxReceivedMessageSize="2147483647" 
      maxBufferSize="2147483647" transferMode="Streamed">
    </binding>  
   </webHttpBinding>
</bindings>
方绪
2023-03-14

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

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

您需要在绑定中设置maxReceivedMessagesize。还可以需要设置readerQuotas

<system.serviceModel>
  <bindings>
    <basicHttpBinding>
      <binding maxReceivedMessageSize="10485760">
        <readerQuotas ... />
      </binding>
    </basicHttpBinding>
  </bindings>  
</system.serviceModel>
 类似资料:
  • 对工作或替代解决方案有什么想法吗?

  • 我已在etc/nginx/nginx上将客户机的最大机身尺寸更改为100M。在etc/php5/fpm/php上,我已经将upload_max_文件大小更改为100M。在etc/php5/fpm/php上将ini和post_max_大小设置为100M。ini和我仍然无法让文件上传工作。 还有其他人遇到过这个问题吗?

  • 我正试图将一个保存到一个嵌套中。但是当我尝试这么做时,服务器崩溃了,这就是我在控制台上看到的问题。日志: 有一件事是JSON请求的大小是1095922字节,在Nest中有人知道怎么做吗。js是否增加有效请求的大小?谢谢

  • 使用Spring Rest模板上传一个100 MB的文件,使用多部分post请求。

  • 我有下面的上传文件方法来上传多部分文件,我看到413请求实体太大,同时上传一个像28MB的大尺寸文件。在tomcat 9服务器配置中,我已经将设置为50MB,并且还尝试了下面链接中建议的设置。我已经在文件中添加了下面的属性。 我在下面的链接中尝试了一些建议,但仍然看到相同的错误:Spring Boot Upload Multipart 413请求实体太大