我有一些在 ASP.NET MVC Web 应用程序中运行时没有 HttpContext 的进程。此过程需要能够确定应用程序的 Contents 目录的物理路径,以便读取/写入数据。但是,因为它没有 HttpContext,所以我不能使用像 Server.MapPath 之类的花哨的东西。建议?
问问题
17106 次
2 回答
15
在网站中,最好使用HttpRuntime.AppDomainAppPath
,因为在执行路径的某些时刻(即网站启动时),没有HttpContext.Current
可用的。
另见这篇文章。
于 2010-08-23T16:45:03.217 回答
4
最好的方法是使用该AppDomain.BaseDirectory
属性。只要您不摆弄自定义应用程序域,它就会指向您的根应用程序目录。换句话说; 这两个字符串是相同的:
string mapUsingAppDomain = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Contents");
string mapUsingServer = HttpContext.Current.Server.MapPath("~/Contents");
于 2010-08-23T16:42:32.967 回答