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

sia*_*ana 7 asp.net iis iis-7

我正在使用N2Cms,我正在寻找我的一些问题.它在左侧有一个导航面板,在您展开树时通过ajax加载.

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

.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=%252fhome%252fhelp-and-advice%252f
Run Code Online (Sandbox Code Playgroud)

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

调查这表明上面的url给出了500错误.

如果我解码网址

.../cms/Content/Navigation/LoadTree.ashx?target=preview&selected=/home/help-and-advice/
Run Code Online (Sandbox Code Playgroud)

它没有任何问题.

不幸的是,我无法将生成此代码的代码更改为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>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎没有任何效果.

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

Mr *_*ith 1

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

在 google 上搜索 URLSCan 默认位置。