我需要使用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()
上下文使您还可以访问会话集合,请求对象,响应对象。例如,当您要记录错误时非常有用
ContextGlobal.asax中没有保证。
您可以尝试HttpContext.Current.Server.MapPath(“ /”)-这就是我以前在类中引用它的方式。