使用hostingenvironment获取执行应用程序的路径。
我有一个SignalR hub。当客户端断开连接时,我想执行一个文件操作。要做到这一点,我需要访问Server.MapPath
.
但是,由于我的Hub类不是.aspx或Web服务,因此没有HttpContext
也没有请求。
我想将IO工作委托给HTTP请求处理程序,但我不能创建一个带有相对URI的WebRequest,我需要能够在不同的位置部署解决方案。
我怎样才能从SignalR获得System.IO
类中使用的本地路径?
System.IO.Directory.GetCurrentDirectory()
给出IIS工作进程的位置。
您可以尝试以下操作
var path = (System.Web.HttpContext.Current == null)
? System.Web.Hosting.HostingEnvironment.MapPath("~/")
: System.Web.HttpContext.Current.Server.MapPath("~/");