asp.net - 500 内部服务器错误 IIS7 编码的 url

标签 asp.net iis iis-7

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

获取节点子节点的代码调用带有一些参数的 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>

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

有什么想法为什么这不起作用吗?

最佳答案

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

在 Google 上搜索 URLSCan 默认位置。

关于asp.net - 500 内部服务器错误 IIS7 编码的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12817036/

相关文章:

asp.net - 如何在运行时设置ObjectDataSource选择参数

asp.net-mvc-4 - 使用自定义域而不是 localhost :* in IIS express

asp.net - 使用自定义路径时忽略 ServiceStack web.config 设置

asp.net - 引用广告印象进行大规模 SQL 插入的最佳实践是什么?

c# - 我如何创建一个程序,可以为不同的用户设置不同的用户界面细节和其他细节?

asp.net - 从应用程序池内部使用时,IIS:\\AppPools 似乎为空

url-rewriting - 我如何知道安装了哪个版本的 IIS7 URL 重写模块

ASP.NET 上下文重写路径 404 错误

iis - 无 Cookie session 和 IIS7 导致重定向循环

c# - 检查var是否为String类型