如何在没有HttpContext的情况下确定文件的物理路径?

时间:2010-08-23 16:38:46

标签: c# asp.net asp.net-mvc filepath

我有一些在ASP.NET MVC Web应用程序中没有HttpContext的情况下运行的进程。此过程需要能够确定用于读取/写入数据的应用程序的Contents目录的物理路径。但是,由于它没有HttpContext,我不会使用像Server.MapPath这样的花哨的东西。建议?

2 个答案:

答案 0 :(得分:13)

在网站中,最好使用HttpRuntime.AppDomainAppPath,因为在执行路径的某些时刻(即网站启动时),没有HttpContext.Current可用。

另见this post

答案 1 :(得分:4)

执行此操作的最佳方法是使用AppDomain.BaseDirectory属性。只要您不使用自定义应用程序域,它就会指向您的根应用程序目录。换一种说法;这两个字符串是相同的:

string mapUsingAppDomain = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Contents");
string mapUsingServer = HttpContext.Current.Server.MapPath("~/Contents");