【发布时间】:2010-10-30 14:20:58
【问题描述】:
我尝试使用 HttpRequest 的各种方法显示 url,我也尝试了 VirtualPathUtility 对象,但我从来没有能够显示默认的隐藏部分“default.aspx”......方法是什么或检索这部分 url 的属性?
原因是,我非常接近在应用程序级别创建一个 404,它通过在 url 的映射路径上使用 File.Exist() 来捕获所有 404,甚至是 html 页面,不幸的是,这在默认情况下不起作用页面。
我看到很少有文章试图做相反的事情,当它发生时删除default.aspx,这里不是这样。
编辑:这是我正在尝试的:
string fullOrigionalpath = context.Request.CurrentExecutionFilePath.ToString();
bool newUrl = System.IO.File.Exists(context.Server.MapPath(fullOrigionalpath));
if (!newUrl) throw new HttpException(404,"page not found");
现在你看,如果页面是 localhost/lexus/default.aspx,它可以正常工作,没有错误,但是如果我输入地址 http://localhost/lexus/ ,抛出错误,因为如果你尝试输出 fullOriginalPath,它没有“default.aspx”部分,所以 Exists 返回 false!你有更好的方法来检查物理文件的有效性吗?
【问题讨论】:
标签: c# asp.net http-status-code-404