[转]记解决一次“HTTP Error 400. The request URL is invalid”的错误
今天将图片服务切到使用了cdn的机器上面去,然后就部分图片报如下图错误“HTTP Error 400. The request URL is invalid”
看到这种错误信息,一般的开发者心中可能会猜测到两个原因
1.链接中有特殊字符
2.链接长度过长(似乎长度过长也不是这个错,模糊不清,忘记了)
错误图片的地址如下:http://{host}/SearchService.svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2%A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2%A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99
接下来就开始了按照我们所能遇见的错误原因进行排查
1.查看url,并没有特殊字符(排除这个原因)
2.url咋一看确实很长,那我们删除参数的一半长度再请求。结果是可以成功,然后通过不断的加字符,发现长度超过339就报这个错,而339后面也没啥特殊字符,所以我们基本确定错误原因是应为url过长。
接下来就是解决相关问题
然后就是各种百度,查看相关修改querystring长度限制的配置
然后就修改web.config
1.修改 httpRuntime 节点下面增加 maxQueryStringLength,maxRequestLength配置
<httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" maxQueryStringLength="2097151" maxUrlLength="2097151" maxRequestLength="2097151" relaxedUrlToFileSystemMapping="true" executionTimeout="36000" delayNotificationTimeout="36000" />
2.修改system.webServer节点,如下
<security>
<requestFiltering allowDoubleEscaping="true" allowHighBitCharacters="true" >
<requestLimits maxAllowedContentLength="2097151" maxQueryString="2097151" maxUrl="2097151" />
</requestFiltering>
</security>
满怀期待的保存,运行,错误依旧,好像并没有什么卵用
这个时候就开始纳闷了,为啥不行,会不会没有生效,想到这儿可能就有很多人像我一样,想到了iis的全局设置,会不会该项设置不能被覆盖,我们用的依旧是全部设置的值
不用猜测,查看一下就知道了(注意,查看的requestFiltering是位于 system.webServer下,不要看错节点了)
<section name="requestFiltering" overrideModeDefault="Allow" />
如果是关闭的,overrideModeDefault的值是Deny,Allow表示我们该配置会以我们站点具体配置为准。
那么一切都是正常的啊,为啥就是报错呢?!
最后stackoverflow上面一个没有被采纳的回到引起了我的注意
链接 https://stackoverflow.com/questions/8447698/the-request-url-is-invalid-in-iis-7
大致意思是,请求还没到iis,被操作系统干掉了。
这个时候再google上面搜到另外一篇文章,链接到了微软的光放技术支持
地址如下 https://support.microsoft.com/zh-cn/help/820129/http-sys-registry-settings-for-windows
两篇文章的大意都是我们需要修改注册表,综合两篇文章,大概修改是注册表如下两个值
接下来就试一下,进入注册表 CMD =》 regedit=》HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
右击空白区域,选择Dword值,如图
新建名称 UrlSegmentMaxLength,值设置成2048,然后点击ok
UrlSegmentMaxCount的设置同上,值也是Dword 2048,点击ok.
修改完成只有重启http服务才能生效
- 依次单击“开始”、“运行”,键入 Cmd,然后单击“确定”。
- 在命令提示符处,键入 net stop http,然后按 Enter。
- 在命令提示符处,键入 net start http,然后按 Enter。
然后重启IIS。再试一下,ok了,不报错了,完美解决,在解决问题的过长中,领导给予了不少支持,实际情况不像本文描述的这么简单平凡!
[转]记解决一次“HTTP Error 400. The request URL is invalid”的错误的更多相关文章
- 记解决一次“HTTP Error 400. The request URL is invalid”的错误
今天将图片服务切到使用了cdn的机器上面去,然后就部分图片报如下图错误“HTTP Error 400. The request URL is invalid” 看到这种错误信息,一般的开发者心中可能会 ...
- HTTP Error 400. The request hostname is invalid
HTTP Error 400. The request hostname is invalid 错误, 检查服务的iis服务得知,是因为在绑定主机和端口的那一步时也指定了相应的域名. 解决办法: 去掉 ...
- [转]HTTP Error 400. The request hostname is invalid.
一般看到网站提示Bad Request(Invalid Hostname)错误我们都会说是iis,apache出问题了,iis出现这种问题解决办法大概是:IIS> 默认网站> > 属 ...
- vs2015 HTTP Error 400. The request hostname is invalid.
<site name="> <application path="/" applicationPool="Clr4IntegratedAppP ...
- 使用Windows 10专业版 进行VS2017开发 遇到 HTTP Error 400. The request hostname is invalid
使用IIS Express 支持非localhost访问 只要使用域名或者本机IP地址都无法进行 iisexpress 调试 公网ip,还是127.0.0.1都出现上面那个错误 主要是新的系统环境 ...
- 火狐浏览器访问网站出现 HTTP Error 400. The request is badly formed.错误,怎么解决
今天在访问某个网站时,出现一个“HTTP Error 400. The request is badly formed.”错误, 那么应该如何解决呢? 1.问题描述: 用火狐浏览网站出现“”HTTP ...
- WebService:The remote server returned an error: (400) Bad Request
开发工具:VS2010.开发组件:WebService.运行环境:Windows 今天一个同事在进行计费接口联调试时,发现了一个非常奇怪的问题:接口在家里环境测试,一切正常,但是部署到现网环境之后,连 ...
- Call Azure Queue get "The remote server returned an error: (400) Bad Request."
这几天开始研究Windows Azure, 在使用Azure Queue 的时候,CreateInfNotExists 总是抛出异常 "The remote server returned ...
- HTTP ERROR 400 Bad Request
一springmvc项目中我新增记录完全ok,编辑就是不行,后台方法进不去.老是报错HTTP ERROR 400 Bad Request. 经过查询,说是400表示请求中的语法错误. 我把新增记录的请 ...
随机推荐
- 理解 CALayer ContentsCenter 属性
http://aaronzjp.cn/2016/12/01/iOS-CALayer/ 这个属性和android 的 .9 文件类似,定义了图片的拉伸范围:例子中明显是四个角不拉伸,对于需要做背景,co ...
- triangular distribution
mode(众数), 一组数据中出现次数最多的那个(或那些)数值. 众数可以不存在或多于一个. 例如, 1,2,3,3,4的众数是3. 1,2,2,3,3,4的众数是2和3. 1,2,3,4,5没有众数 ...
- vmware虚拟机与主机共享文件
参考: http://blog.csdn.net/season_hangzhou/article/details/8162704 前言:本文提供的方法是吧windows主机上的文件夹共享给vmware ...
- easyui datagrid 取消删除的方法
下面为取消方法 ... { field: 'Guid', title: '操作', width: 80, align: 'center', formatter: function (value, ro ...
- easyui datagrid 去掉外边框及行与行之间的横线标题字体
这是以前写的一个项目中写的东西,为了让datagrid样式好看,所有做的这个处理: 今天同事又问到于是记录下来 $('#id').datagrid({ width: '99%', height: 15 ...
- 阿里云不同账号之间相同地域的VPC网络互访
今天实际操作了一下,在这篇随笔中记录一下以备忘,主要参考阿里云帮助文档-不同账号下专有网络内网互通. 实现场景:账号A的VPC网络中的ECS访问账号B的VPC网络中的ECS与RDS(地域都在华东1), ...
- {MySQL的逻辑查询语句的执行顺序}一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析
MySQL的逻辑查询语句的执行顺序 阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SEL ...
- POJ 3764 - The xor-longest Path - [DFS+字典树变形]
题目链接:http://poj.org/problem?id=3764 Time Limit: 2000MS Memory Limit: 65536K Description In an edge-w ...
- 关于初识Java整理
- 从urllib2的内存泄露看python的GC python引用计数 对象的引用数 循环引用
这里会发现上述代码是存在内存泄露,造成的原因就是lz与ow这两个变量存在循环引用,Python 不知道按照什么样的安全次序来调用对象的 __del__() 函数,导致对象始终存活在 gc.garbag ...