增加 Azure 网站中的最大 URL 长度?

Posted

技术标签:

【中文标题】增加 Azure 网站中的最大 URL 长度?【英文标题】:Increase max url length in Azure Websites? 【发布时间】:2015-04-11 03:52:41 【问题描述】:

我有一个包含以下几行的 web.config:

 <requestFiltering>
     <requestLimits maxUrl="25000" maxQueryString="25000"></requestLimits>
 </requestFiltering>

这让我可以访问最多 25k 个字符的 URL,包括查询字符串。但是,当我发布到 Azure 网站时,它完全忽略了我的 web.config 的这个特定部分,但我找不到 Microsoft 发布的任何类型的限制。

有人知道怎么回事吗?

【问题讨论】:

相同,尽管:feedback.azure.com/forums/34192--general-feedback/suggestions/… 【参考方案1】:

您可以在Azure doc 中找到请求限制的详细概述

这可能是由于 ASP.NET 运行时或 IIS 请求过滤模块而发生的。默认情况下,查询字符串的最大允许长度为 2048 参考:link 和 Internet Explorer 您应该在 Web.config 中的 requestLimits 子节点下设置适当的值。

即使你为最大查询字符串设置了一个很大的值,每个处理 url 和查询字符串的浏览器都有一个限制。这在 IIS 6 或以经典模式运行的 IIS 7 应用程序池中不可用。

【讨论】:

【参考方案2】:

找不到任何文档,但 Azure 应用服务似乎将查询字符串限制设置为 2048,这是推荐的默认值。

您的 web.config 配置不起作用的原因是因为它在工作人员级别应用,并且此限制可能(也)在前端级别强制执行,前端级别是接收请求并分发它们的反向代理组件给适当的后端工作人员。

afaik 无法在前端级别配置此设置。如果您希望向您的应用程序发送更多数据,请考虑使用 POST 请求。

【讨论】:

【参考方案3】:

对于较旧的服务器,您必须在配置中设置更高的值,可能值得尝试设置此值。

<configuration>
  <system.web>
    <httpRuntime maxQueryStringLength="25000" />
  </system.web>
</configuration>

【讨论】:

以上是关于增加 Azure 网站中的最大 URL 长度?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以增加 HttpClient 中的最大 URL 长度? (无效的 URI:uri 字符串太长)

如何增加 ktor 可接受 url 的最大长度?

如何增加 Windows 中的输入行长度(最大值)?

Azure 活动目录给定的 OAuth 令牌的最大长度(以字节为单位)

URL 路径中的段的安全最大长度应该是多少?

增加QueryString最大长度[重复]