System.Web.UI.HiddenFieldPageStatePersister.Load()中Base-64 char数组的长度无效

时间:2011-11-14 18:31:18

标签: asp.net http iis webserver viewstate

我理解在收到Viewstate被截断或修改的请求时会发生此错误(其中它不确认为base64编码)。

网络上的不同来源指出了以下原因:为什么与viewstate相关可能会发生此错误,

  1. 发出请求时连接中断
  2. 浏览器无法发送完整的请求
  3. 客户端在回发到服务器之前修改请求
  4. 在可能的原因中,服务器将仅在第3种情况下在标题中接收所述内容长度。

    话虽如此,

    • 为什么IIS不会将其他案例归类为错误请求?
    • 如果收到的内容与请求标题中的内容长度不匹配,为什么这个请求会被移交给ASP.NET?

    我在这里缺少任何基础知识吗?感谢。

    //更新1

    确定。以下是我的分析中的更多细节,

    当连接被客户端中断或中止时,ASP.NET会抛出一个异常,该异常在global.ascx的Application_Error中捕获。

    有趣的是,我们再次看到Request.ContentLength大于Context.Request.TotalBytes。

    对我而言,这显然意味着服务器完全接收了请求。这证实了IIS是处理此问题的合适人选,而根本没有向ASP.NET提出请求。

    IIS中是否有任何配置可以实现此目的?还有其他很好的理由,为什么IIS默认不这样做?

    Check the Exception and Watch windows in this screen shot

0 个答案:

没有答案