日期:2014-05-17  浏览次数:20454 次

本地没事,服务器上向ASHX文件传值的字数过多报错:“此请求的查询字符串的长度超过配置的 maxQueryStringLeng”
一个发布动态的功能,异步调用的ASHX文件,本地怎么都没事,到了服务器上传过去的值字数太多就会抱这个错
:“此请求的查询字符串的长度超过配置的 maxQueryStringLeng“
CONFIG里找了找,貌似又没有这个东西,敢问各位大侠 应该怎么解决

------解决方案--------------------
1. 修改web.config文件可以改变这个默认值      
     
  <configuration>      
        <system.web>       
                    <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
        </system.web>      
  <configuration>   

2.另一种方法是修改.NET FrameWork:

  (1) 修改 C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG    目录下的machine.config 文件。

  (2) 查找     "<httpruntime"     在这一行将     maxRequestLength的值改为理想的值,比如想要8M,就输入8192.         
  这样,你的任何一个     web     工程都可以上传最大8M的文件。 
3.顺便说下IIS中限制上传文件大小的修改方法:

  (1)首先要到进程中把IIS服务关了,即把inetinfo.exe进程关了。

  (2)在系统目录中找到:windows/system32/inesrv/metabase.xml”文件,找个文本编辑器打开,查找AspMaxRequestEntityAllowed="204800"这一项,这就是iis上传文件的默认大小了,默认为204800Byte,也就是200KB,将它改为需要的大小就可以了。
------解决方案--------------------
你用的是GET方式,query string最长长度是有限制的,iis是2048字节

修改方法:
asp.net 4.0里:
<httpRuntime maxQueryStringLength="260" maxRequestLength="2048"/>

早期版本,需要改iis的config:
<requestLimits maxQueryString="20480"></requestLimits>

或者改用post方式