iis - 我在哪里设置最大查询字符串长度?
问题描述
从带有 loooong 查询字符串的 HTTP 请求(在本例中为 2847),我收到错误 404.15 并显示以下消息:
Überprüfen Sie die Einstellung "configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString" 在 der Datei "applicationhost.config" 或 "web.config" 中。
用英语讲:
检查“applicationhost.config”或“web.config”文件中的“configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString”设置。
我通过遵循文档并将最大查询字符串长度从 2048 更改为 4096 个字符来做到这一点。
显然,上述更改已经产生了影响,因为原始错误消息已经消失。
相反,我现在遇到另一个错误,仍然与最大查询字符串长度有关。这一次,它带有 HTTP 代码 400 并说:
Die Länge der Abfragezeichenfolge für die Anforderung überschreitet den konfigurierten maxQueryStringLength-Wert。
用英语讲:
请求的查询字符串长度超过了配置的 maxQueryStringLength 值。
现在,我已经扫描*.config
了整个磁盘上的所有文件以查找 substring 的任何出现maxQueryString
。总共只有一次这样的事件,它是Web.config
我的 IIS 默认网站的文件,上面写着
<requestLimits maxQueryString="4096" />
因此,必须有其他因素影响最大查询长度 - 我还能在哪里配置此设置?
解决方案
首先,确保您在 iis 中启用了匿名身份验证:
在 web.config 文件中设置以下代码:
<system.web>
<httpRuntime maxUrlLength="10999" maxQueryStringLength="2097151" />
……
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxUrl="10999" maxQueryString="2097151" />
</requestFiltering>
</security>
</system.webServer>
注意:设置值比您的要求高一点。上面提到的只是一个例子。在根文件夹配置文件中设置此值。并在进行更改后重新启动 iis。
推荐阅读
- css - 单击下拉菜单显示一个白框
- python - 如何提高 LSTM Multiclass 文本分类准确率?
- sql - 如果未提供不受影响的值,则插入重复键失败?
- reactjs - 使用变量获取 graphQL 数据的最佳解决方案
- html - 为什么屏幕最小化时我的元素重叠?
- docker - 使用 Google AI Platform Notebook 实例,我如何从本地机器 ssh 到 jupyterlab 容器?
- excel - 使用 Excel VBA 打开 Internet Explorer 并单击网页按钮
- visual-studio-code - pycharm vim 扩展:如何将“k+j”重新映射到 Escape 键?
- javascript - 如何创建一个功能性的 JavaScript 搜索栏
- erc20 - Erc20 token transferFrom