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

时间:2008-10-08 13:51:33

标签: asp.net iis-6 directory windows-server-2003

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

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

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

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

6 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

即可

这解决了我的问题

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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