ASP.Net错误:“无法使用前导..退出顶级目录”

问题描述 投票:4回答:6

我在生产网站上每小时看到这个错误几次,我不太确定如何修复它。我已经使用了源代码,我没有在代码中的任何地方使用“../”来生成路径。

我的应用程序在Win2003 Server上的IIS6上运行。它使用URLRewriter.Net来允许网站拥有友好的URL,我想知道这是否会导致问题。

我已经谷歌搜索了一个解决方案,并找到了几种可能性,但没有一个对我有用。

我已经尝试创建一个新的App_Browser文件来强制标签编写器设置使用特定的HtmlTextWriter,正如一个最流行的解决方案中所建议的那样,但这对我没有用。我还没有看到任何其他可能的解决方案。

asp.net iis-6 directory windows-server-2003
6个回答
3
投票

这可能是由于使用“〜/ something”,可能是在超链接控件上。当物理文件与友好URL位于不同的目录级别时,ASP.NET在其生成的相对URL中使用了太多../,导致此错误。如果您不能仅使用绝对URL,我相信您可以使用Page.ResolveUrl(“〜/ foo / bar”)来获取正确的相对URL。


1
投票

只需在您的网站的ASP设置中将启用父路径设置为True即可

这解决了我的问题


0
投票

使用反射器挖掘URLRewriter.Net代码。


0
投票

我会再次给你的重写路径,看看是否有一个包含一个文件夹的路径,该文件夹不存在,已被删除或实际上在Web应用程序之外。你能在这里发布重写规则吗?


0
投票

你确定你导致了错误吗?一些脚本(Code Red / Nimda)在互联网上搜索一个看起来像错误的URL遍历。

这是内部还是外部?您的机器是否可能被扫描?


0
投票

我能够通过安装.NET 3.5 SP1解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.