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

Mat*_*att 12 c# asp.net asp.net-mvc filepath

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

Abe*_*bel 14

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

另见这篇文章.

  • 因为它的语义.当你进入HttpRuntime时,最好向运行时询问正确的路径,而不是在自己周围徘徊.此外,它使您的代码更具可读性,您的意图更清晰.最后,实现可能会改变,但即使在这种情况下,HttpRuntime仍将返回正确的路径,而AppDomain将不会(同样可能适用于您已启动分离的AppDomain的罕见情况). (5认同)
  • 为什么HttpRuntime.AppDomainPath比AppDomain.BaseDirectory更好?` (4认同)