4

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

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

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

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

4

6 回答 6

3

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

于 2008-10-08T23:10:38.923 回答
1

只需在您网站的 ASP 设置中将 Enable Parent Paths 设置为 True

这为我解决了问题

于 2010-06-16T07:34:09.723 回答
0

使用反射器深入研究 URLRewriter.Net 代码。

于 2008-10-08T14:31:02.217 回答
0

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

于 2008-10-09T16:01:15.047 回答
0

你确定是你造成的错误吗?一些脚本(Code Red/Nimda)在互联网上寻找一个看起来像那个错误的 URL 遍历。

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

于 2008-10-30T20:01:14.360 回答
0

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

于 2009-06-05T13:01:44.507 回答