我需要使用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\
?
Answers:
您可以尝试System.Web.Hosting.HostingEnvironment.MapPath()。
不需要HttpContext。
使用,AppDomain.CurrentDomain.BaseDirectory
因为Context
可能会返回null!
在Global.asax中时,请使用上下文对象:
context.Server.mappath()
上下文使您还可以访问会话集合,请求对象,响应对象。例如,当您要记录错误时非常有用
Context
Global.asax中没有保证。
您可以尝试HttpContext.Current.Server.MapPath(“ /”)-这就是我以前在类中引用它的方式。