如何使用 global.asax 中的 Server.MapPath() ?

我需要使用 Server.MapPath()组合一些文件路径,我存储在 web.config

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

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

还有其他方法可以将 web 根目录(如 ~/App_Data/)映射到完整的物理路径(如 C:\inetpub\wwwroot\project\App_data\)吗?

37651 次浏览

你可以试试 System.Web.Hosting.HostingEnvironment. MapPath ()

不需要 HttpContext。

您可以尝试 HttpContext.Current.Server.MapPath (“/”)-这是我以前在类中引用它的方式。

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

Mappath ()

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

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