Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#/ASP.NET-远程服务器返回意外响应:(413)请求实体太大_C#_Asp.net_Wsdl - Fatal编程技术网

C#/ASP.NET-远程服务器返回意外响应:(413)请求实体太大

C#/ASP.NET-远程服务器返回意外响应:(413)请求实体太大,c#,asp.net,wsdl,C#,Asp.net,Wsdl,我正在尝试从远程服务建立响应。使用my web.config中的以下部分,我从web服务获得了不希望的响应 远程服务器返回意外响应:(413)请求实体太大。我尝试增加缓冲区大小,但无法通过此错误 我如何解决这个问题 <system.serviceModel> <bindings> <basicHttpBinding> <binding name="CustomBinding_ISalesOrderService"

我正在尝试从远程服务建立响应。使用my web.config中的以下部分,我从web服务获得了不希望的响应

远程服务器返回意外响应:(413)请求实体太大。我尝试增加缓冲区大小,但无法通过此错误

我如何解决这个问题

  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="CustomBinding_ISalesOrderService" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text">
          <security mode="Transport"/>
          <readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="https://app.vendsys2.com/VendSysAPI/v1.2/SalesOrderService.svc/VendSysAPI/v1.2/SalesReportService.svc"
        binding="basicHttpBinding" bindingConfiguration="CustomBinding_ISalesOrderService"
        contract="SalesOrderService.ISalesOrderService" name="CustomBinding_ISalesOrderService" />
    </client>
  </system.serviceModel>

如果客户端发送一个长HTTP请求,IIS工作进程可能会收到足够的数据来解析请求头,但不会收到整个请求实体体。当IIS工作进程检测到需要客户端证书才能将数据返回到客户端时,IIS会尝试重新协商客户端连接。但是,客户端无法重新协商连接,因为它正在等待将剩余的请求数据发送到IIS[]。你的问题可能就是这样

摘自微软科技网

如果请求客户端重新协商,则必须使用SSL preload预加载请求实体主体。SSL预加载将使用UploadReadAheadSize元数据库属性的值,该属性用于ISAPI扩展。但是,如果UploadReadAheadSize小于内容长度,则返回HTTP 413错误,并关闭连接以防止死锁。(发生死锁的原因是客户机正在等待完成发送请求实体,而服务器正在等待重新协商完成,但重新协商要求客户机能够发送数据,但它不能这样做)


解决方案是确保不会阻止客户端发送整个实体体。为此,请将UploadReadAheadSize的值更改为大于内容长度的值

以下示例显示如何在Web服务器上将UploadReadAheadSize的值设置为200KB

请注意,
UploadReadAheadSize
元素已在IIS 7中删除,并作为属性添加到元素中。

您是否可以阅读此更改basicHttpBinding到webHttpBinding可能会有所帮助。
cscript adsutil.vbs set w3svc/1/uploadreadaheadsize 200