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

我需要使用Server.MapPath()来结合我存储在web.config中的一些文件path。

但是,由于Server.MapPath()依赖于当前的HttpContext(我认为),我无法做到这一点。 当试图使用该方法时,即使它的“可用”,我得到以下exception:

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

还有另外一种方法可以将Web根目录相对目录(如~/App_Data/映射到完整的物理path,如C:\inetpub\wwwroot\project\App_data\

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

不需要HttpContext。

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

在Global.asax中使用上下文对象:

context.Server.mappath()

上下文让你访问会话集合,请求对象,响应对象。 例如,当您想要logging错误时非常有用

你可以试试HttpContext.Current.Server.MapPath(“/”) – 这就是我之前在类中引用它的方法。

Interesting Posts