本地没事,服务器上向ASHX文件传值的字数过多报错:“此请求的查询字符串的长度超过配置的 maxQueryStringLeng”

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

9 个解决方案

#1


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,将它改为需要的大小就可以了。

#2


照的你的方式试了一下,不行啊  两种方法都试了,只是传过去几百个字,改成这么大,没理由不够啊,
var tag = "";
                    $("span[name=appendtip_heartxq]").each(function () {

                        tag += $(this).text() + ",";
                    });
                    
                      $.ajax({
                            type: "get",
                            url: "Ajax/AddDynamic.ashx?tag=" + escape(tag) + "&Con=" + escape(contents),
                            dataType: 'html',
                            success: function (data) {
                                if ("添加失败" != data) {
                                                                           document.getElementById("FBLJ_body_kuang3middleAll").innerHTML = data + document.getElementById("FBLJ_body_kuang3middleAll").innerHTML;
                                                                    }
                                                            },
                            error: function () { alert(Error.toString()); }
                        });

是不是这个方式不能传太多东西过去?

#3


你用的是GET方式,query string最长长度是有限制的,iis是2048字节

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

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

或者改用post方式

#4


引用 3 楼  的回复:
你用的是GET方式,query string最长长度是有限制的,iis是2048字节

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

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

可是config里好像没有这个啊maxQueryStringLength   提示不能使用这个特性

#5


不是跟你说了吗,只有asp.net 4.0版本才支持这个特性,早期版本需要设置iis

#6


额。。。。能不能问下  那个IIS在哪里设置啊,就是那个IIS的CONFIG

#7


你的程序的web.config里:
   <system.webServer>
      <security>
        <requestFiltering>
          <requestLimits maxQueryString="20480" />
        </requestFiltering>
      </security>
    </system.webServer>

#8


引用 7 楼  的回复:
你的程序的web.config里:
  <system.webServer>
  <security>
  <requestFiltering>
  <requestLimits maxQueryString="20480" />
  </requestFiltering>
  </security>
  </system.webServer>

谢谢了,这个对我很有用

#9


引用 7 楼 hzzasdf 的回复:
你的程序的web.config里:
   <system.webServer>
      <security>
        <requestFiltering>
          <requestLimits maxQueryString="20480" />
        </requestFiltering>
      </security>
    </system.webServer>


这个也没用啊

#1


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,将它改为需要的大小就可以了。

#2


照的你的方式试了一下,不行啊  两种方法都试了,只是传过去几百个字,改成这么大,没理由不够啊,
var tag = "";
                    $("span[name=appendtip_heartxq]").each(function () {

                        tag += $(this).text() + ",";
                    });
                    
                      $.ajax({
                            type: "get",
                            url: "Ajax/AddDynamic.ashx?tag=" + escape(tag) + "&Con=" + escape(contents),
                            dataType: 'html',
                            success: function (data) {
                                if ("添加失败" != data) {
                                                                           document.getElementById("FBLJ_body_kuang3middleAll").innerHTML = data + document.getElementById("FBLJ_body_kuang3middleAll").innerHTML;
                                                                    }
                                                            },
                            error: function () { alert(Error.toString()); }
                        });

是不是这个方式不能传太多东西过去?

#3


你用的是GET方式,query string最长长度是有限制的,iis是2048字节

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

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

或者改用post方式

#4


引用 3 楼  的回复:
你用的是GET方式,query string最长长度是有限制的,iis是2048字节

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

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

可是config里好像没有这个啊maxQueryStringLength   提示不能使用这个特性

#5


不是跟你说了吗,只有asp.net 4.0版本才支持这个特性,早期版本需要设置iis

#6


额。。。。能不能问下  那个IIS在哪里设置啊,就是那个IIS的CONFIG

#7


你的程序的web.config里:
   <system.webServer>
      <security>
        <requestFiltering>
          <requestLimits maxQueryString="20480" />
        </requestFiltering>
      </security>
    </system.webServer>

#8


引用 7 楼  的回复:
你的程序的web.config里:
  <system.webServer>
  <security>
  <requestFiltering>
  <requestLimits maxQueryString="20480" />
  </requestFiltering>
  </security>
  </system.webServer>

谢谢了,这个对我很有用

#9


引用 7 楼 hzzasdf 的回复:
你的程序的web.config里:
   <system.webServer>
      <security>
        <requestFiltering>
          <requestLimits maxQueryString="20480" />
        </requestFiltering>
      </security>
    </system.webServer>


这个也没用啊