500内部服务器错误IIS7编码的URL

时间:2012-10-10 10:18:42

标签: asp.net iis iis-7

我正在使用N2Cms并正在研究我遇到的一些问题。它在左侧有一个导航面板,在您展开树时通过ajax加载。

获取节点的childeren的代码调用带有一些参数的ashx文件。一个参数用于路径并包含斜杠。出于这个原因,它已被编码。

.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=%252fhome%252fhelp-and-advice%252f

我在我的开发服务器(运行iis 7.5)上没有遇到任何问题,但是当部署到我们的测试服务器(iis7)时,导航无法正常工作。

调查此情况表明上述网址出现500错误。

如果我将网址解码为

.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=/home/help-and-advice/

它没有任何问题。

不幸的是,我无法将生成此代码的代码更改为n2cms源代码的一部分,我假设它已被编码有充分的理由。

有没有人知道我可以在我的web.config中做什么来允许编码参数或我可以在iis服务器上更改的内容?

修改 所以这个链接似乎表明它的目的是作为一个安全问题。 http://msdn.microsoft.com/en-us/library/ee656542.aspx

建议的解决方案是升级到.net 4.0并将以下内容添加到web.config

<configuration>
 <uri>
   <schemeSettings>
    <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
   </schemeSettings>
 </uri>
</configuration>

不幸的是,这似乎没有效果。

任何想法为什么这不起作用?

3 个答案:

答案 0 :(得分:1)

这可能是URLScan实用程序。 URL扫描根据其配置文件中的规则阻止URL。它还有自己的日志文件,因此您可以通过查看URLScan日志来确定。

谷歌搜索URLSCan默认位置。

答案 1 :(得分:1)

看来你的网址经历了2个html编码。 您的IIS7服务器上是否有一些URL重写模块处于活动状态?

答案 2 :(得分:0)

好的,我正在这个地方。

当尝试在IIS日志中找到错误并且失败时,然后查看有关失败的跟踪请求的许多帖子并且仍然没有在iis中出现任何错误,我认为该请求只是没有进入IIS。

回顾服务器错误,也有一个线索。
    500内部服务器错误。该请求被HTTP过滤器拒绝。

这是防火墙!! 我们已禁用HTTP过滤器,现在它可以工作:)

我现在需要调查这个HTTP过滤器应该保护我们的内容,并且现在我们已经将其关闭了。