【问题标题】:How do I get the current directory in a web service如何在 Web 服务中获取当前目录
【发布时间】:2008-10-25 09:39:51
【问题描述】:

我正在使用 System.IO.Directory.GetCurrentDirectory() 来获取我的 Web 服务中的当前目录,但这并没有给我当前目录。如何在 Web 服务中获取当前目录?

谢谢 斯图尔特

【问题讨论】:

  • 您在哪里托管 Web 服务? IIS?你在使用 WCF

标签: c# web-services


【解决方案1】:

在 web 服务中,您在 http 上下文中运行。所以,

HttpContext.Current.Server.MapPath("~/") 

会给你答案。

【讨论】:

  • 这映射到根目录。哪个可能不是是最新的
【解决方案2】:

你可以使用

AppDomain.CurrentDomain.BaseDirectory;

这为您提供了应用程序的根目录。

【讨论】:

  • 这是一个
【解决方案3】:

HttpContext.Current.Server.MapPath(".") 会给你当前的工作目录。

但对于 Rohan West 关于可能在 HttpContext 之外的评论,最好直接调用:

HostingEnvironment.MapPath(".")

查看详情here

【讨论】:

    【解决方案4】:

    HttpContext.Current.Server.MapPath("~/") 映射回应用程序或虚拟目录的根目录。

    HttpContext.Current.Server.MapPath("~/") HttpContext.Current.Server.MapPath(".") HttpContext.Current.Server.MapPath("..")

    以上都是相对的,所以你可以任意组合遍历目录树。

    【讨论】:

      【解决方案5】:

      最好的方法是使用

      HostingEnvironment.ApplicationPhysicalPathSystem.Web.Hosting

      更多信息请参考this link

      【讨论】:

        【解决方案6】:

        HttpContext.Current.Server.MapPath("~/") 会让您获得应用程序的根目录吗?

        这很可能,因为您可能知道从那里开始的路径。

        另一个可能感兴趣的选项:

        HttpContext.Current.Server.MapPath("/Directory/") 
        

        无论如何,这都是从应用程序的根目录构建的。

        如果没有第一个斜线,这将从您调用的目录开始:

        HttpContext.Current.Server.MapPath("Directory/") 
        

        【讨论】:

          【解决方案7】:

          HttpContext.Current.Server.MapPath("..") [观察两个(..)点而不是(.)] 给出站点的虚拟目录的物理目录!

          【讨论】:

            猜你喜欢
            • 2012-05-09
            • 1970-01-01
            • 1970-01-01
            • 2010-10-26
            • 1970-01-01
            • 2012-12-12
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多