Web服务错误:HTTP 413:请求实体太大

时间:2016-07-28 07:59:54

标签: c# web-services console-application http-status-code-413

我的系统:

IIS 7.5

Visual Studio 2010

框架4

我制作了一个接收文件(字节数组)的Web服务。 我制作了一个使用它的控制台应用程序(添加服务参考 - >高级 - >添加Web参考)。使用http它是完美的工作。但我需要使用https来使用它。因此,当我尝试使用https来使用它时,它给了我HTTP 413:Request Entity Too Large。我一直在阅读,但这是不可能的。我试图放入Web服务的webconfig:

    <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_INopService" maxReceivedMessageSize="22147483647" maxBufferPoolSize="252428800" maxBufferSize="22147483647">
          <readerQuotas maxDepth="256" maxStringContentLength="22147483647" maxArrayLength="2222216384"
            maxBytesPerRead="2222220000" maxNameTableCharCount="2222216384" ></readerQuotas>
        </binding>
      </basicHttpBinding>

<basicHttpBinding>
        <binding name="HttpBigMessage"
             receiveTimeout="00:10:00"
             sendTimeout="00:10:00"
             maxReceivedMessageSize="2147483647" >
          <security mode="None" />
        </binding>
      </basicHttpBinding>

  </bindings>

    <client>
      <endpoint address="https://localhost/hmenu/GetData.asmx"
        binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_INopService"
        contract="PhotoSavingsService.INopService" name="BasicHttpBinding_INopService" />
    </client>


  </system.serviceModel>

文件不是太大。 我需要在哪里放置最大尺寸?

感谢

1 个答案:

答案 0 :(得分:0)

多次添加行

<httpRuntime maxRequestLength="214748364" executionTimeout="9999" 
targetFramework="4.5"/>

给出500错误

请找出您的网络中已存在的内容 配置文件 嗨,大家好 如果配置中有任何错误配置,通常会发生500错误 web.config首先解决了这个问题。 这里我提供的413实体在https协议问题修复上太大了

发布问题之前

web.config

<bindings>
  <webHttpBinding>
    <binding name="RestServiceBindingConfig">
      <security mode="Transport"></security>
    </binding>
    <binding name="HttpRestServiceBindingConfig">
      <security mode="None"></security>
    </binding>
<binding maxBufferPoolSize="76000000" maxReceivedMessageSize="19000000">
      <readerQuotas maxDepth="32" maxStringContentLength="19000000" 
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
    </binding>
  </webHttpBinding>
</bindings>
<behaviors>

我们只需复制粘贴的readerquotas maxBufferPoolSize maxReceivedMessageSize 在传输模式RestServiceBindingConfig中,这首先成为了技巧 RestServiceBindingConfig用于https第二个HttpRestServiceBindingConfig 绑定http

问题解决后

web.config

<bindings>
  <webHttpBinding>
    <binding name="RestServiceBindingConfig" maxBufferPoolSize="2147483647" 
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
           maxArrayLength="2147483647" maxBytesPerRead="4096" 
           maxNameTableCharCount="16384" />
      <security mode="Transport"></security>
    </binding>
    <binding name="HttpRestServiceBindingConfig" 
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
           maxArrayLength="2147483647" maxBytesPerRead="4096" 
           maxNameTableCharCount="16384" />
      <security mode="None"></security>
    </binding>

  </webHttpBinding>
</bindings>
<behaviors>