【发布时间】:2008-11-08 11:45:00
【问题描述】:
加载页面时出现以下错误。
[HttpException (0x80004005): 无法使用前导 .. 退出顶级目录。]
不知道该怎么办?谁能帮帮我?
【问题讨论】:
标签: asp.net
加载页面时出现以下错误。
[HttpException (0x80004005): 无法使用前导 .. 退出顶级目录。]
不知道该怎么办?谁能帮帮我?
【问题讨论】:
标签: asp.net
我猜你做过这样的事情:
Response.Redirect("../SomePage.aspx");
使用相对路径时,您只能导航到与发出请求的页面位于同一虚拟目录中的页面。您所做的是从位于虚拟顶部的页面中调用此路径目录树。所以你有一些选择:
../
http://www.example.com/SomePage.aspx
对于选项 3:
【讨论】:
很可能是 googlebot 或其他一些机器人正在扼杀您的网站。
http://www.kowitz.net/archive/2006/12/11/asp.net-2.0-mozilla-browser-detection-hole.aspx
http://todotnet.com/post/2006/07/01/Get-GoogleBot-to-crash-your-NET-20-site.aspx
解决方案是在您网站的 app_browser 文件夹中添加 .browser 文件。
【讨论】:
我意识到这和罪一样古老,但对我来说,导致它的原因是我在数据库集中有一个带有 ../ 的图像的相对链接。当我的页面尝试在根目录中加载图像的 ImageUrl 时,它工作正常,但在子目录中它却出现了。
将其更改为 ~ 解决了问题。
【讨论】:
根据您的情况,这可能会或可能不会有帮助,但我上周遇到了这个错误。我的解决方案是更改 My Project 中的 Web 设置以使用本地 IIS 服务器而不是 Visual Studio Web 服务器。
【讨论】:
我可以通过在 web.config 中的 forms-tag 上设置 cookieless-attribute 来解决这个问题:
<authentication>
<forms cookieless="UseCookies" />
</authentication>
【讨论】:
抱歉,因为这已经很老了,但是我在 MVC3 应用程序上遇到这个问题已经有几天了。 我不断进入我的 _Layout.cshtml 文件并删除对 css 文件或 javascript 的任何引用(我在此应用程序中使用 JQuery)以找到可怕的 ../ 引用。我找不到一个。然后我试图通过将重定向放到我的应用程序的根目录中来绕过我的问题。那也失败了。 YellowScreenOfDeath 上的堆栈轨迹给了我一个线索:
[HttpException (0x80004005): Cannot use a leading .. to exit above the top directory.]
System.Web.Util.UrlPath.ReduceVirtualPath(String path) +11496719
System.Web.Util.UrlPath.Reduce(String path) +171
System.Web.Configuration.**AuthenticationConfig**.GetCompleteLoginUrl(HttpContext context, String loginUrl) +218
System.Web.Security.FormsAuthenticationModule.OnEnter(Object source, EventArgs eventArgs) +156
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270
归根结底,我在 web.config 中有这个带有“../”的内容。删除它或更改上引用解决了我的问题。
<authentication mode="Forms">
<forms loginUrl="../home.aspx" timeout="2880" />
</authentication>
【讨论】: