【问题标题】:How to Increase item size in Http Post如何增加 Http Post 中的项目大小
【发布时间】:2013-05-08 19:00:27
【问题描述】:

我正在使用 C# 将数据发布到 IIS Web 服务器。

我使用了 XML 和模式,当在一个字段中发布很长的数据时,我收到“错误请求错误”。 例如,

<Field1>TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT.......<Field1>

我已经修改了我的 Web.Config

<webHttpEndpoint>
   <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" maxReceivedMessageSize="21474836" maxBufferSize="21474836"  maxBufferPoolSize="21474836" ></standardEndpoint>
          </webHttpEndpoint>

我还需要做什么才能完成这项工作?

   <system.web>
        <authentication mode="Forms" />
        <compilation debug="true" targetFramework="4.0">
            <assemblies>
                <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            </assemblies>
        </compilation>
        <httpRuntime maxRequestLength="204800" executionTimeout="12000" requestValidationMode="2.0" requestPathInvalidCharacters="" />
    </system.web>
    <system.serviceModel>
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true"></serviceHostingEnvironment>
        <standardEndpoints>
            <webHttpEndpoint>
                <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" maxReceivedMessageSize="21474836" maxBufferSize="21474836" maxBufferPoolSize="21474836"></standardEndpoint>
            </webHttpEndpoint>
        </standardEndpoints>
    </system.serviceModel>

【问题讨论】:

  • 如果您使用 JavaScript 将其发布回来,请确保您的 web.config 设置为接受大型 json blob。 The JSON request was too large to be deserialized
  • 我正在使用 C# 客户端和 XML
  • 请求正文到底有多大(使用 Fiddler 轻松获取该数字)。
  • 您在 Field1 的结束标记中缺少 / - 会不会这么简单?
  • 不,这只是一个错字,我使用 XmlDocument 创建 XML

标签: c# asp.net rest iis http-post


【解决方案1】:

您需要在 web.config 中为所有请求修复此值,而不仅仅是 WCF 服务,就像您所做的那样...

<httpRuntime maxRequestLength="1234" executionTimeout="1200" />

您可能需要增加该数字。这是针对首先发生的 HttpRuntime - 所有请求都受此标记定义的规则的约束。您为 WCF 服务设置的请求限制只有在请求首先通过此检查(和其他检查)时才会应用。

【讨论】:

  • 我已经更新了问题上显示的 web.config 文件,它仍然给我这个错误。我是否正确修改了这个?
  • 您收到 400:错误请求?这意味着您请求的语法不正确 - 而不是长度。请发布您提交请求的代码 - 问题可能就在那里。也看看这个:stackoverflow.com/questions/8507853/…
  • 当字符串较短时它可以工作。我现在已经发布了代码。非常感谢
  • 我认为你的内容类型需要是 application/xml。
  • 试过但同样的问题:(
【解决方案2】:

我通过将 readerQuotas 添加到 standardEndpoint 来修复它

<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" maxReceivedMessageSize="21474836" maxBufferSize="21474836"  maxBufferPoolSize="21474836" >
          <readerQuotas maxStringContentLength="2048000" maxArrayLength="2048000"  maxDepth ="65000"/>
        </standardEndpoint>
      </webHttpEndpoint>
        </standardEndpoints>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多