我需要使用Server.MapPath()
来组合我存储在web.config
.
但是,由于Server.MapPath()
依赖于当前的 HttpContext (我认为),我无法做到这一点。尝试使用该方法时,即使它“可用”,我也会收到以下异常:
服务器操作在此上下文中不可用。
是否有另一种方法可以将 Web 根相对目录映射~/App_Data/
到完整的物理路径,例如C:\inetpub\wwwroot\project\App_data\
?
我需要使用Server.MapPath()
来组合我存储在web.config
.
但是,由于Server.MapPath()
依赖于当前的 HttpContext (我认为),我无法做到这一点。尝试使用该方法时,即使它“可用”,我也会收到以下异常:
服务器操作在此上下文中不可用。
是否有另一种方法可以将 Web 根相对目录映射~/App_Data/
到完整的物理路径,例如C:\inetpub\wwwroot\project\App_data\
?
您可以尝试System.Web.Hosting.HostingEnvironment.MapPath()。
不需要 HttpContext。
使用AppDomain.CurrentDomain.BaseDirectory
因为Context
可能返回 null !!
在 Global.asax 中,使用上下文对象:
context.Server.mappath()
上下文还允许您访问会话集合、请求对象、响应对象。例如,当您想要记录错误时非常有用
您可以尝试 HttpContext.Current.Server.MapPath("/") - 这就是我之前在课堂上引用它的方式。