我可以遵循哪些最佳实践来增加 IIS7/ASP.NET 中 URL 的最大长度?
请指教。
从这个网站:http ://technet.microsoft.com/en-us/library/cc754791(v=ws.10).aspx
使用命令行:appcmd set config /section:requestfiltering/requestlimits.maxurl: unit
这里解释了如何使用 appcmd: http: //www.windowsnetworking.com/articles_tutorials/Configuring-IIS-7-command-line-Appcmdexe-Part1.html
您需要知道 AppCmd.exe 命令的位置,因为它不在默认 PATH 中。为了运行 AppCmd.exe,您需要将目录更改为 %windir%\system32\inetsrv\ 或将该目录添加到 PATH 变量中。在默认安装的 Windows 2008 服务器上,AppCmd.exe 位于 C:\Windows\System32\inetsrv。
但小心点。如果您的请求 url 变得非常大,请使用 post message 传递参数
虽然 HTTP 协议的规范没有指定任何最大长度,但实际限制是 2,083 个字符,URL 的路径部分不超过 2,048 个字符。这些是 Microsoft Interet Explorer 当前实施的限制,大部分用户仍在使用这些限制。主要的网络浏览器一直对 URL 的长度设置一个合理的上限。当您希望提交包含许多字段的表单时,否则会产生很长的 URL,标准的解决方案是使用 POST 方法而不是 GET 方法:
<form action="myscript.php" method="POST">
...
</form>
然后表单字段作为 HTTP 事务标头的一部分而不是 URL 的一部分传输。
您可能会受到 web.config 中以下设置的限制:
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits>
</requestLimits>
</requestFiltering>
</security>
</system.webServer>
</configuration>
参考: http ://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits#005