【问题标题】:Posting data to a HttpHandler greater then ~29MB gives a 404 error将数据发布到大于 ~29MB 的 HttpHandler 会出现 404 错误
【发布时间】:2010-04-23 04:17:49
【问题描述】:

我正在测试一个接受 XML 的 HttpHandler。当发布少量数据时它工作正常,但如果我发布大于约 29mb 的数据,我会收到 asp.net 404 错误。

我从同一个项目中的另一个处理程序向处理程序发帖,我尝试了 2 种方法 - 1. 带有“POST”的HttpWebRequest 2. WebClient 与 UploadFile() 和 UploadData()

当发布的数据高于 28.6 MB 时,我收到相同的 404 错误。

我还尝试在接收处理程序的开头放置一个断点并进行调试。它永远不会被击中。似乎从未调用过处理程序。适用于较小的数据。

我已经有以下设置。我做错了什么?

<httpRuntime maxRequestLength="1048576" />

编辑:我也尝试过发布到不使用发布数据的不同处理程序,只是为了测试,但结果是相同的。 环境:Win 7、IIS 7.5、.net 3.5、VS 2008 alt text http://img401.imageshack.us/img401/4099/errormr.png

【问题讨论】:

  • 我已经把它设置得很高 - maxRequestLength="1048576"
  • 您是上传文件还是发布页面?
  • 我尝试过上传文件(使用 Webclient)和发布(HttpWebRequest)。相关数据是一个 XML 文档

标签: asp.net httpwebrequest http-status-code-404 httphandler server-error


【解决方案1】:

我发现问题出在 IIS 7 及更高版本上。它需要在不同的地方设置最大请求长度。

查看以下链接-

http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_22943810.html

http://msdn.microsoft.com/en-us/library/ms689462%28VS.90%29.aspx

默认值为 30000000。即 28.6mb。在 web.config 中设置的正确方法是 -

  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824"></requestLimits>
      </requestFiltering>
    </security>
  </system.webServer>

此配置清除了我遇到的错误。我希望报告的错误更具描述性,至少在本地机器上是这样

这是否意味着设置 对于 IIS 6 就足够了? (直播服务器是win2003)

【解决方案2】:

尝试将此部分添加到web.config 文件中:

<location path="YourHandler.aspx">
    <system.web>
        <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
    </system.web>
</location>

假设您的处理程序路径是YourHandler.aspx

【讨论】:

    猜你喜欢
    • 2011-04-11
    • 2012-07-03
    • 1970-01-01
    • 2020-12-07
    • 2016-07-27
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 2017-05-19
    相关资源
    最近更新 更多