129

我需要使用Server.MapPath()来组合我存储在web.config.

但是,由于Server.MapPath()依赖于当前的 HttpContext (我认为),我无法做到这一点。尝试使用该方法时,即使它“可用”,我也会收到以下异常:

服务器操作在此上下文中不可用。

是否有另一种方法可以将 Web 根相对目录映射~/App_Data/到完整的物理路径,例如C:\inetpub\wwwroot\project\App_data\

4

4 回答 4

308

您可以尝试System.Web.Hosting.HostingEnvironment.MapPath()

不需要 HttpContext。

于 2009-06-01T18:05:48.383 回答
5

使用AppDomain.CurrentDomain.BaseDirectory因为Context可能返回 null !!

于 2010-02-02T08:32:36.070 回答
1

在 Global.asax 中,使用上下文对象:

context.Server.mappath()

上下文还允许您访问会话集合、请求对象、响应对象。例如,当您想要记录错误时非常有用

于 2009-06-01T22:12:34.760 回答
-5

您可以尝试 HttpContext.Current.Server.MapPath("/") - 这就是我之前在课堂上引用它的方式。

于 2009-06-01T18:08:27.503 回答