我正在开发的网站上的一些长URL收到404错误。经过一些挖掘后,我发现当URL的某些方面的长度超过IIS7中的可配置限制时会发生这种情况。在这种情况下,需要在web.config中增加 requestLimits 属性的 maxQueryString 属性
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="4096" maxAllowedContentLength="4096" maxUrl="8192" >
</requestLimits>
</requestFiltering>
</security>
这在我的开发服务器上立即解决了问题,但在远程服务器上我现在得到了:
500 - 内部服务器错误。
有 您所拥有的资源存在问题 寻找,它不可能 显示。
这就是它给我的所有信息。
答案 0 :(得分:1)
您确定您的主机/生产服务器正在运行Windows Server 2008(或2008 R2)吗? 您在上面描述的设置仅对IIS 7 +有效。
答案 1 :(得分:1)
更改Flash以将数据作为POST发送,因此不会将其附加到URL。 Here's some sample code。此外,您可能需要更改服务器端以将数据查找为POST而不是GET。
答案 2 :(得分:0)
您不应该使用这么长的网址。除了其他原因之外,至少有一个常见的工具栏(Bing,Yahoo,Google)会打破它们,产生这样的错误。用户会责怪你。
我知道这是因为我的一位用户在遗留应用中遇到了这样的问题。当我删除工具栏时(她安装了所有三个工具栏),问题就消失了。
答案 3 :(得分:0)
GET请求仅受浏览器对URL字符串长度的限制。 在IE中它是2,083个字符,减去实际路径中的字符数。其他浏览器没有明确定义URL字符串长度的限制。这些文章可能对您有所帮助。
http://www.boutell.com/newfaq/misc/urllength.html
http://support.microsoft.com/kb/q208427
RFC 2616“超文本传输协议 - HTTP / 1.1”没有指定对URL长度的任何要求,因此浏览器可以自由地规定他们认为合适的内容。因此,如果它符合您的要求,您应该使用POST而不是GET