【问题标题】:IIS/HttpHandler: Get relative absolute path?IIS/HttpHandler:获取相对绝对路径?
【发布时间】:2010-12-14 08:09:24
【问题描述】:

我在 IIS 中设置了一个站点,可以在 http://localhost/WebApplication6 运行。在我的 Web 应用程序中,我有一个处理程序(实现 IHttpHandler)。当我打印context.Request.Url.AbsolutePath 时,我得到/WebApplication6/whaetever。我想剪掉/WebApplication6(本地站点名称)。我怎样才能做到这一点?有没有办法获得“WebApplication6”位,所以我知道要修剪什么? (在IHttpHandler.ProcessRequest 内)。

【问题讨论】:

    标签: c# asp.net iis path


    【解决方案1】:

    您最好的选择是HttpRequest.AppRelativeCurrentExecutionFilePath - 它提供了相对于您的 Web 应用程序根目录的路径。但是,它将采用“~/whatever”的形式,其中~/ 表示应用程序的相对路径。如果您的要求是获得/whatever,那么您可以使用字符串函数剥离~。

    顺便说一句,这是一篇可以帮助您理解所有路径的好文章:http://www.west-wind.com/weblog/posts/132081.aspx

    【讨论】:

    • 是的,这样就行了。还发现了Request.ApplicationPath,它只给了我/WebApplication6 位,所以我也可以这样修改网址。
    【解决方案2】:
    VirtualPathUtility.GetDirectory(context.Request.Url.AbsolutePath)
    

    【讨论】:

    • 这行不通。事实上,它总是会给出目录部分,即/foo/bar/ 会给出/foo/
    猜你喜欢
    • 1970-01-01
    • 2022-06-10
    • 2011-08-11
    • 2010-09-21
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    相关资源
    最近更新 更多