C# 检索url的隐藏default.aspx段

C# 检索url的隐藏default.aspx段,c#,asp.net,http-status-code-404,C#,Asp.net,Http Status Code 404,我尝试使用各种各样的HttpRequest方法显示url,我也尝试了VirtualPath实用性对象,但我始终无法显示默认值的隐藏部分“default.aspx”。。。检索此url段的方法或属性是什么 原因是,我非常接近于在应用程序级别创建一个404,通过在url的映射路径上使用File.Exist()捕获所有404,甚至html页面,不幸的是,这在默认页面上不起作用 我看过一些文章试图做相反的事情,删除default.aspx当它发生时,这里不是这样 编辑:以下是我正在尝试的: string

我尝试使用各种各样的HttpRequest方法显示url,我也尝试了VirtualPath实用性对象,但我始终无法显示默认值的隐藏部分“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,它可以正常工作,没有错误,但是如果我键入地址,就会抛出错误,因为如果您尝试输出fullOriginalPath,它没有“default.aspx”部分,因此Exists返回false!你有更好的方法检查物理文件的有效性吗?

我不知道你说的“隐藏部分”是什么意思,但你试过了吗

Request.Url.ToString()

您可能正在查找
HttpRequest
对象上的
AppRelativeCurrentExecutionFilePath
属性:


如果有人请求
AppRelativeCurrentExecutionFilePath
的值将是
“~/default.aspx”

我认为这根本不可能,因此我依赖IIS7.0重写功能来强制default.aspx始终出现。

这也不起作用:(它返回~/,检查File.Exists时返回false!是否缺少IIS设置?我是否理解正确,您想要的是能够获取请求文件的物理文件路径?其中请求的URL可能类似于“”,并且您希望结果为“~/default.aspx”?