首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置了url的站点的IIS错误请求-使用ARR重写

问配置了url的站点的IIS错误请求-使用ARR重写
EN

Stack Overflow用户
提问于 2019-05-15 15:51:25
回答 1查看 693关注 0票数 0

我有在Windows 2012的IIS 8.0下创建的网站。已在此站点下创建了使用ARR的URL重写,该URL指向linux计算机(基本上指向Tomcat中部署的GET服务),并且通过IIS将出现URL超过5000个字符以及查询字符串的"GET“请求。当通过程序或浏览器访问URL时,我看到IIS抛出"Bad Request“,状态代码为400,没有子状态代码。当它直接访问when服务时也是如此(对于tomcat Linux)。我怀疑这个问题是因为url中的字符过多,因为当我尝试将url长度减少到3500个字符时,它没有任何错误。下面是我在IIS web.config和http.sys注册表中尝试的配置和设置,但似乎什么都不起作用。

代码语言:javascript
复制
<configuration>
    <system.webServer>
        <security>
            <requestFiltering allowDoubleEscaping="true">
                <requestLimits maxAllowedContentLength="4294967295" maxUrl="10999" maxQueryString="2097151">
                    <headerLimits>
                        <add header="Content-Type" sizeLimit="100000000" />
                    </headerLimits>
                </requestLimits>
            </requestFiltering>
        </security>
        <urlCompression doDynamicCompression="false" />
    </system.webServer>
    <system.web>
        <httpRuntime maxRequestLength="8192" maxUrlLength="8192" maxQueryStringLength="8192" requestPathInvalidCharacters="" />
    </system.web>
</configuration>

http.sys注册表设置

代码语言:javascript
复制
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\MaxFieldLength - DWORD - 65534
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\MaxRequestBytes - DWORD - 16777216
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\UrlSegmentMaxCount - DWORD - 16383
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\UrlSegmentMaxLength - DWORD - 32766

在完成上述所有设置和配置后,我已经重新启动了Windows服务器。

IIS支持这些设置和配置,无需重写url。如果我尝试其他长度为5000个字符的网址为同一网站,它的工作没有任何错误。这仅对已落入url重写配置的URL显示。除了上面提到的以外,对于ARR中的URL长度,还需要做什么具体的配置吗?请提供建议和帮助。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-06-06 21:58:11

回答我的问题。

问题出在Linux Tomcat端,而不是IIS端,catalina.out日志如下所示

代码语言:javascript
复制
INFO: Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Request header is too large

我在tomcat/conf的server.xml中添加了maxHttpHeaderSize="65536“的配置。对此进行修改后,问题已解决。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56144152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档