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