首页 > 其他分享 >由于链接地址长度过长引起的”HTTP Error 400. The request URL is invalid”错误解决办法:修改注册表

由于链接地址长度过长引起的”HTTP Error 400. The request URL is invalid”错误解决办法:修改注册表

时间:2023-04-02 13:58:18浏览次数:49  
标签:服务 IIS URL 重启 注册表 400 HTTP

网站中,设计了一个批量搜索的功能,用户可以输入多个关键词进行批量查询搜索,但不出意外的话还是出意外了,有些用户可能会输入N多个关键词,我为了性能等考虑,会限制个数,比如每次批量查询仅限50个以内,但还是有意外发生,有些关键词可能会很长,即会引发”HTTP Error 400. The request URL is invalid”的错误。如图

 

按以前的经验呢,先检查了网站程序上的web.config文件,httpRuntime 节点下的maxUrlLength配置以及security节点下的requestFiltering》maxUrl  ,

确认都以及设置过了

 <httpRuntime targetFramework="4.6.1" enableVersionHeader="false" requestPathInvalidCharacters="" requestValidationMode="2.0" maxQueryStringLength="2097151000" maxUrlLength="2097151000" maxRequestLength="2097151000" relaxedUrlToFileSystemMapping="true" executionTimeout="36000" delayNotificationTimeout="36000" />

 

    <security>
      <requestFiltering allowDoubleEscaping="true" allowHighBitCharacters="true"  >
        <requestLimits maxAllowedContentLength="2097151000" maxQueryString="2097151000" maxUrl="2097151000" />
      </requestFiltering>
    </security>

 

还是出现”HTTP Error 400. The request URL is invalid”的错误,最后问度娘、谷歌,最终找到解决方法:修改服务器的注册表。

Http.sys Windows 的注册表设置(https://learn.microsoft.com/zh-CN/troubleshoot/developer/webapps/iis/iisadmin-service-inetinfo/httpsys-registry-windows)

可以在以下注册表项下创建以下 DWORD 注册表值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

注册表项 默认值 有效值范围 注册表项函数 WARNING 代码
UrlSegmentMaxCount 255 0 - 16,383 段 最大 URL 路径段数。 如果为零,则计数受最大值的 ULONGb 约束。 1
UrlSegmentMaxLength 260 0 - 32,766 chars URL 路径段中的最大字符数 (URL) 中斜杠之间的区域。 如果为零,则由最大值限制的 ULONG长度。 1

开干!

进入注册表  CMD =》 regedit=》HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

右击空白区域,选择Dword值,新建名称 UrlSegmentMaxLength,双击键名,选择十进制,值设置成2048,然后点击 确认。

同样,再新建名称 UrlSegmentMaxCount,双击键名,选择十进制,值设置成2048,然后点击 确认。

如图

 

需要注意的是,修改完以后不会立即生效,需重启HTTP 服务。不想那么麻烦,也可以简单粗暴一下,重复服务器即可。

若不想或不允许重启服务器,可以按如下步骤来重启HTTP服务。

 

 

重启 HTTP 服务、键入和所有相关的 IIS 服务,请执行以下步骤:

选择 “开始”,选择 “运行”,键 入 Cmd,然后选择 “确定”。

停止HTTP服务:在命令提示符处,键入 net stop http,然后按 Enter。系统提示会停止相关联的服务器,输入y 确认继续

启动HTTP服务:在命令提示符处,键入 net start http,然后按 Enter。

停止IIS服务:在命令提示符处,键入 net stop iisadmin /y,然后按 Enter。

备注:依赖于 IIS 管理员服务服务的任何 IIS 服务也将停止。 请注意停止 IIS 管理员服务时停止的 IIS 服务。 下一步将重启每个服务。

重启步骤 4 中已停止的 IIS 服务。 为此,请在命令提示符处键 net start servicename 入,然后按 Enter。 在命令中, servicename 是要重启的服务的名称。 例如,若要重启万维网发布服务服务,请键入 net start World Wide Web Publishing Service,然后按 Enter。

 

再来测试一下,访问正常啦!

 
来源:由于链接地址长度过长引起的”HTTP Error 400. The request URL is invalid”错误解决办法:修改注册表 https://www.iwmyx.cn/yyljdzcdgc.html

标签:服务,IIS,URL,重启,注册表,400,HTTP
From: https://www.cnblogs.com/star8521/p/17280329.html

相关文章

  • HTTP 方法:GET 对比 POST
    什么是HTTP?超文本传输协议(HTTP)的设计目的是保证客户端与服务器之间的通信。HTTP的工作方式是客户端与服务器之间的请求-应答协议。web浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。举例:客户端(浏览器)向服务器提交HTTP请求;服务器向客户端返回响应。响......
  • cordova android使用https协议
     在cordvoa添加平台后,cordovalib的文件夹下SystemWebViewClient.java文件(code\platforms\android\CordovaLib\src\org\apache\cordova\engine);修改:onReceivedSslError,方法,只需按以下方法修改publicvoidonReceivedSslError(WebViewview,SslErrorHandlerhandler,SslErr......
  • HTTP协议之基本认证&HTTP中长连接与短连接
    HTTP协议之基本认证常见认证方式BASIC认证(基本认证)DIGEST认证(摘要认证)SSL客户端认证FormBase认证(基于表单认证)  DIGEST认证什么是DIGEST认证为弥补BASIC认证存在的弱点,从HTTP/1.1起就有了DIGEST认证DIGEST认证同样使用质询/响应的方......
  • 4·2HTTP协议中的编码和解码、4·3协议之基本认证、4·4中长连接与短连接、4·5中介之
     。。Http协议中的编码和解码YRL的编码与解码%编码规范对URL中属于ASCII字符集的非保证留字不做编码;对URII中的保留字需要取其ASXII内码,然后加上%前缀将该字符进行编码;对于URL中的非ASCII字符需要取其Unicode内码然后加上%前缀将该字......
  • HTTP状态管理:Cookie与Session
    CookieCookie实际上是一小段的文本信息,客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器颁发一个Cookie客户端浏览器会把Cookie保存起来,当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器,服务器检查该Cookie,以此来辨认用户状态 ......
  • http3.0和http2.0的比较
    从HTTP/1.1到HTTP/2,HTTP协议一直都是使用TCP作为传输协议。然而,就在最新的HTTP/3,HTTP就直接把TCP抛弃了,向孤立无援的UDP伸出了援手,基于UDP协议的基础上,在应用层实现了一个可靠的传输协议——QUIC。 很多同学可能就好奇了,HTTP都用TCP都用了几十年了,而且T......
  • HTTP响应状态码拆解
    HTTP响应状态码拆解状态码:是用以标识网页服务器超文本传输协议响应状态的3位数字代码    常用HTTP状态码         HTTP状态码详解......
  • 3·1HTTP协议特点、3·2详解URL与URI的区别与联系、3·3HTTP报文结构分析、3·4HTTP请
     HTTP协议特点支持客户/服务器模式客户/服务器模式工作的方式是由客户端向服务器发出请求,服务器端响应请求,并进行相应服务简单快速 客户端向服务器请求服务时,只需传输请求方法和路径 请求方法常用的有GET、HEAD、POST。每种方法规......
  • HTTP协议特点&详解UR与URL的区别与联系
    HTTP协议特点支持客户/服务器模式客户/服务器模式工作的方式是由客户端向服务器发送请求,服务器端响应请求,并进行相应服务   简单快速客户向服务器请求服务时,只需传送请求方法和路径请求方法常用的有GET,HEAD,POST。每种方法规定了客户与服务器练习的......
  • http
    在应用层,是一种协议。 有两种方法:GET:获取的方法(获取信息,请求信息)POST:提供的方法(提供信息)http状态码:  首部(content-type):服务端会返回不同类型的文件给客户端,有了首部,客户端浏览器就可以更好的处理这些文件 tcp:效率低但是稳定,三次握手四次挥手udp:效率高但是信......