2010-01-28 32 views
3

我试图诊断客户端网站遇到的问题。基本上,当您在他们的网站上进行地址搜索时,您可以为通配符搜索指定%符号。例如,你可以搜索Be%返回Belfast当我在查询字符串中有'%'符号时收到500内部服务器错误

此查询数据库,然后将您重定向到结果页面,通过搜索条件的查询字符串,例如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设置这个或类似的东西?

+0

所写的,我有同样的问题,你有没有找到解决的办法? – LuRsT 2010-02-26 11:10:37

+0

不幸的是,我结束了只是执行通配符查询,然后从URL中删除百分比符号 – lisburnite 2010-03-02 16:31:45

回答

3

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

+0

没有在ISAPI筛选器列表中没有任何东西,这就是为什么我很困惑,IIS似乎配置完全如何我有它配置在我的测试虚拟机上 – lisburnite 2010-01-28 16:49:27

+0

确保你在正确的地方找。在IIS6中,右键单击名为Website的文件夹并查看其ISAPI筛选器。 URLScan不会显示在实际网站的ISAPI筛选器列表中。 另外,你检查你的IIS日志? – 2010-01-28 17:01:41

相关问题