加载页面时出现以下错误。
[HttpException(0x80004005):无法使用前导..退出顶层目录。]
不知道该怎么办?任何人都可以帮助我吗?
答案 0 :(得分:4)
我猜你做过这样的事情:
Response.Redirect("../SomePage.aspx");
使用相对路径时,您只能导航到与请求所在页面位于同一虚拟目录中的页面。您所做的是从位于虚拟机顶部的页面调用此页面。目录树。所以你有一些选择:
../
http://www.example.com/SomePage.aspx
对于选项3:
答案 1 :(得分:1)
很可能是谷歌机器人或其他一些机器人正在杀死你的网站。
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文件。
答案 2 :(得分:1)
我意识到这和罪一样古老,但是对我来说是什么原因是我在数据库集中有一个图像的相对链接,带有../。当我的页面试图为根目录中的图像加载ImageUrl时,它工作正常,但是在子目录中它已经摆脱了。
将其更改为〜修复问题。
答案 3 :(得分:0)
根据您的情况,这可能会有所帮助,也可能没有帮助,但上周我犯了这个错误。我的解决方案是更改My Project中的Web设置以使用本地IIS服务器而不是Visual Studio Web服务器。
答案 4 :(得分:0)
我能够通过在web.config中的forms-tag上设置cookieless-attribute来解决这个问题:
<authentication>
<forms cookieless="UseCookies" />
</authentication>
答案 5 :(得分:0)
道歉,因为这是非常古老的,但我在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>