当查询字符串中有'%'符号时,收到500内部服务器错误

时间:2010-01-28 16:37:33

标签: c# .net url

我正在尝试诊断客户端网站遇到的问题。基本上,当您在其网站上进行地址搜索时,您可以为通配符搜索指定%符号。例如,您可以搜索Be%以返回Belfast等。

查询数据库,然后将您重定向到结果页面,在查询字符串中传递搜索条件,例如results.aspx?criteria=Search%20criteria%20is%20Be%

如果您搜索%Belf之类的内容,则会导致问题,因为%Be是URL编码中的保留字符。因此,我将其编码为将%替换为%25%符号的URL编码表示)。这在我的测试计算机上运行正常,其中URL现在为results.aspx?criteria=Search%20Criteria%20is%20%25Be

然而,由于某种原因,这不适用于我们的客户网站,我无法解释原因。该页面始终存在错误:

  

错误代码:500内部服务器错误。请求被拒绝了   HTTP过滤器。联系服务器管理员。 (12217)

每当您搜索%Be %Fa %Fe等内容时

有没有人知道是否有针对此类似的IIS设置?

2 个答案:

答案 0 :(得分:3)

您的服务器上可能安装了URLScan。 URLScan拦截请求并在检测到无效字符时拒绝它们。它旨在保护您的网站免受恶意攻击和SQL注入。如果您没有正确配置它,它将拒绝完全合理的请求。查看您网站上的ISAPI过滤器,看看是否有URLScan。

答案 1 :(得分:2)

这可以解决你的问题吗?它由 Zubair Alexander http://blog.techgalaxy.net/archives/2521

撰写

enter image description here