鱼遇于池,池涸,相濡以沫,相鞠以湿,不若相忘于海。

while (alive) {
  object state = working & fighting & enjoying & living thanksgiving;
}
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一个很奇怪的问题

Posted on 2005-03-08 22:40  alittlefish  阅读(643)  评论(1)    收藏  举报

   问题的表现是web页上的控件post backdelegate的失效,点击的结果是页面似乎重载了一下,但是速度很快,感觉好像是post是成功的(从iis日志里的记录确认post确实成功的),只是服务器端没有做任何处理就返回给客户端了。

         以下是出现错误的时候Web.config的部分配置内容

         <httpModules>

                   <add name="CustomModule" type="xxxproject.BusinessRules.CustomModule,xxxproject" />

         </httpModules>

         ….

<httpRuntime

                  maxRequestLength="10485760"

                  executionTimeout="3600"

         />

 

         后来我把httpModules部分的内容注释屏蔽掉了,点击页面上控件后直接出现下面的错误。

 

超过了最大请求长度。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 超过了最大请求长度。
源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

 

         之后我查了一下这个错误,发现和上传有关,因为正好问题发生前陈阳就在做上传图片,而查下来得到结果就是修改httpruntime节的maxRequestLength

         于是把web.config修改了一下,如下

<httpRuntime

                  maxRequestLength="100819200"

                  executionTimeout="3600"

         />

         这个100819200是根据网上查到的结果中,那个作者修改的值,再尝试访问页面时,之前的问题解决了!?

 

         当时,很是不解,原始值是10485760,因为一开始没有注意这个maxRequestLength的单位是kbyte,误以为是byte,所以设这个值是表示最大上传文件尺寸是10m,但是实际是10240m,那按照上面的错误来看,10240m超出最大请求数的话,修改后的100819200比原始值10485760大差不多10倍,反而问题解决了,这就很没道理了。