mvc中查询字符串请求过长
最近在mvc中做导出Excel功能,通过页面把字段id和对应的中文名称通过a标签传给控制器的过程中,总是报错。
1.第一次错误截图

具体解决方案:
可以配置 IIS 服务器以拒绝查询字符串长度大于指定值的请求。如果请求的查询字符串大于所配置的值,便会返回此错误。如果需要增加查询字符串的允许长度,请修改configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString 设置。
即确认 applicationhost.config 或 web.config 文件中的configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString 设置。
解决方法一:
在项目的web.config里,<system.webServer>路径下添加如下配置:
<security>
<requestFiltering>
<requestLimits maxQueryString="4080" />
</requestFiltering>
</security>
其实就是更改:maxQueryString的值,默认的大小是2048,单位是字节,最大值方文档并没说。
解决方法二:
对于所有的项目都要应用此配置的话,在C:\Windows\System32\inetsrv\config里找到applicationHost.config文件,在,<system.webServer>路径下添加如下配置:添加如下配置:
<security>
<requestFiltering>
<requestLimits maxQueryString="4080" />
</requestFiltering>
</security>
对于已经设置了的,可以修改maxQueryString的大小.
但是通过以上的更改问题还是没解决,报错:

解决方法:
这是因为网站URL中的参数长度超过HTTP请求中查询字符串的最大可能长度,通过设置配置文件的HttpRuntimeSection.MaxQueryStringLength 属性即可解决这个问题。
打开项目中的Web.config,在<system.web>节点下设置httpRuntime节点的maxQueryStringLength属性,Web.config中的设置如下:
<system.web>
<httpRuntime maxQueryStringLength="9999"/>
</system.web>
查询字符串的最大长度默认值为2048,表示允许请求的字符数,最大值是2097151(但是官方文档并没说),我们可以根据需求进行设置,不过如果参数实在太长的话最好使用POST请求,太长的QueryString对于URL来说也不美观。
通过以上的更改,问题得到了解决。
参考:
https://www.afuhao.com/article_articleId-99.shtml
http://shiyousan.com/post/635717961342698849
官方文档:
https://msdn.microsoft.com/zh-cn/library/e1f13641%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
mvc中查询字符串请求过长的更多相关文章
- 如何获取浏览器URL中查询字符串的参数
首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...
- JS获取浏览器URL中查询字符串的参数
首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...
- 如何获取浏览器URL中查询字符串的参数?
如何获取浏览器URL中查询字符串的参数? 想要知道怎样解决这个问题,首先我们先认识一下Location对象. Location对象包含了当前页面与位置(url)相关的信息 URL示例:http://w ...
- 如何用js获取浏览器URL中查询字符串的参数
首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...
- C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?
C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?这是一个很常见的命题,以前也没有注意,今天QQ群里有人提起,于是就做了下试验,代码如下: using System; u ...
- 获取url中查询字符串参数
// 获取url中查询字符串参数 例如http://www.test.com?a=1&b=2 function RequestParamete() { var url = window.loc ...
- 在Mvc中进行异步请求是出现(没有为该对象定义无参数的构造函数)
解决办法就是给相应的类添加无参数的构造函数:
- aspnet mvc 中 跨域请求的处理方法
ASP.NET 处理跨域的两种方式 方式1,后端程序处理.原理:给响应头加上允许的域即可,*表示允许所有的域 定义一个cors的过滤器 加在在action或者co ...
- MySQL查询字符串长度最长的记录
select `字段`, length(`字段`) from 表名 where length(`字段`) = ( select max(length(`字段`)) from 表名 )http://s ...
随机推荐
- OkHttp 设置 User-Agent 教程
我们知道OkHttp走的并不是原生的http请求,因此在header里面并没有真正的User-Agent,而是“okhttp/版本号”这样的字符串,因为后台需要统计信息,要求传入正确的User-Age ...
- Android加密解析
编码.数字摘要.加密.解密 UrlEncoder /Urldecoder String str = "http://www.baidu.com?serach = 哈哈"; Stri ...
- SpringMVC FistMVC详解
实现一个简单的SpringMVC框架的配置 1.依赖 这是mybatis+spring+现在需要的依赖 <dependency> <groupId>junit</grou ...
- python 实现wav的波形显示(时域和频域)
音频处理中,经常要看一下啊频域图是什么样子的,这里自己写了一个小程序,可以完美的同步显示时域和频域图,直接上代码: #wave data -xlxw #import import wave as we ...
- 关于DB Link
概述 DB Link是一个定义了本地数据库到远程数据库路径的对象,是schema object,它是单向连接 通过DB Link可查询remote数据库的对象及运行其程序 在分布式环境里,DB Lin ...
- pickle模块及其API
模块:pickle 所包含API列表: pickle.dumps : 把任意对象序列化成一个bytes pickle.dump : 直接把对象序列化后写入一个file-like Object pick ...
- java相关知识点
Java基础.语法 1. 简述Java跨平台原理 2. Java的安全性 3. Java三大版本 4. 什么是JVM?什么是JDK? 什么是JRE? 5. Java三种注释类型 6. 8种基本数据类型 ...
- sql server 性能调优之 资源等待 CXPACKET
一.概述 CXPACKET是指:线程正在等待彼此完成并行处理.什么意思呢? 当sql server发现一条指令复杂时,会决定用多个线程并行来执行,由于某些并行线程已完成工作,在等待其它并行线程来同步 ...
- Java代码更改shape和selector文件的颜色值
Android里面经常会使用shape或者selector来定制一些View的背景.那么如果想要动态更改shape或者seletor文件中的颜色值,该怎么处理呢? 一.Java代码更改shape的颜色 ...
- Spring Cloud微服务下的权限架构调研
随着微服务架构的流行,系统架构调整,项目权限系统模块开发提上日程,需要对权限架构进行设计以及技术选型.所以这段时间看了下相关的资料,做了几个对比选择. 一.架构图 初步设想的架构如下,结构很简单:eu ...