最近在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中查询字符串请求过长的更多相关文章

  1. 如何获取浏览器URL中查询字符串的参数

    首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...

  2. JS获取浏览器URL中查询字符串的参数

    首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...

  3. 如何获取浏览器URL中查询字符串的参数?

    如何获取浏览器URL中查询字符串的参数? 想要知道怎样解决这个问题,首先我们先认识一下Location对象. Location对象包含了当前页面与位置(url)相关的信息 URL示例:http://w ...

  4. 如何用js获取浏览器URL中查询字符串的参数

    首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...

  5. C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?

    C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?这是一个很常见的命题,以前也没有注意,今天QQ群里有人提起,于是就做了下试验,代码如下: using System; u ...

  6. 获取url中查询字符串参数

    // 获取url中查询字符串参数 例如http://www.test.com?a=1&b=2 function RequestParamete() { var url = window.loc ...

  7. 在Mvc中进行异步请求是出现(没有为该对象定义无参数的构造函数)

    解决办法就是给相应的类添加无参数的构造函数:

  8. aspnet mvc 中 跨域请求的处理方法

    ASP.NET 处理跨域的两种方式    方式1,后端程序处理.原理:给响应头加上允许的域即可,*表示允许所有的域                 定义一个cors的过滤器 加在在action或者co ...

  9. MySQL查询字符串长度最长的记录

    select `字段`, length(`字段`) from 表名 where length(`字段`) = ( select max(length(`字段`)) from 表名  )http://s ...

随机推荐

  1. 使用Nginx+Uwsgi部署Python Flask项目

    第一次用Flask做Web(也是第一次用Python做Web),在部署的时候遇到了不少问题,现在将过程就下来,供在这方面也有疑惑的人参考.(PS:使用Apache+mod_wsgi部署模式的可以参考另 ...

  2. Akka-CQRS(5)- CQRS Writer Actor 部署和测试

    上篇我们做了一个WriterActor的例子,主要目的是示范WriterActor如何作为集群分片用persistentActor特性及event-sourcing模式实现CQRS的写功能.既然是集群 ...

  3. JavaScript大厦之JS运算符

    运算符用于执行程序代码运算,会针对一个及以上操作数项目来进行运算.2+3,其操作数是2和3,而运算符则是“+”.上一篇我们说过变量用来存储数据,而同一个变量中的数据在不同的时刻可以不同,在程序的运行过 ...

  4. 脑残式网络编程入门(四):快速理解HTTP/2的服务器推送(Server Push)

    本文原作者阮一峰,作者博客:ruanyifeng.com. 1.前言 新一代HTTP/2 协议的主要目的是为了提高网页性能(有关HTTP/2的介绍,请见<从HTTP/0.9到HTTP/2:一文读 ...

  5. OAuth2.0深入理解

    1. OAuth2.0深入理解 1.1. 概念 OAuth(Open Authorization)开放授权,表示将系统功能部分授权给第三方系统调用,实现更细颗粒度的权限控制 OAuth是一种在线授权或 ...

  6. 【Spark调优】Broadcast广播变量

    [业务场景] 在Spark的统计开发过程中,肯定会遇到类似小维表join大业务表的场景,或者需要在算子函数中使用外部变量的场景(尤其是大变量,比如100M以上的大集合),那么此时应该使用Spark的广 ...

  7. AI - 框架(Frameworks)

    1 - Scikit-Learn Sklearn(scikit-learn: machine learning in Python):https://scikit-learn.org/ 文档丰富而又详 ...

  8. Docker 网络背后的原理探索

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 知其然而不知其 ...

  9. 10 种保护 Spring Boot 应用的绝佳方法

    原文:developer.okta.com/blog/2018/07/30/10-ways-to-secure-spring-boot 译文:www.jdon.com/49653 Spring Boo ...

  10. Python常用模块——目录

    Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...