1

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

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

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

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

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

<httpRuntime maxRequestLength="1048576" />

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

4

2 回答 2

3

我发现问题出在 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>

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

这是否意味着设置 <httpRuntime maxRequestLength="1048576" /> 对于 IIS 6 就足够了?(直播服务器为win2003)

于 2010-04-23T06:37:56.060 回答
2

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

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

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

于 2010-04-23T06:11:18.400 回答