我有一个SignalR中心。当客户端断开连接时,我想执行文件操作。
为此,我需要访问Server.MapPath
。
但是,由于我的Hub类不是.aspx或Web服务,因此没有HttpContext
或请求。
我想过将IO工作委托给HTTP请求处理程序,但是我无法使用相对URI创建WebRequest,我需要能够在不同的位置部署解决方案。
如何从SignalR的System.IO
类中获取本地路径?
System.IO.Directory.GetCurrentDirectory()
为我提供了IIS工作进程的位置。
答案 0 :(得分:14)
您可以尝试以下
var path = (System.Web.HttpContext.Current == null)
? System.Web.Hosting.HostingEnvironment.MapPath("~/")
: System.Web.HttpContext.Current.Server.MapPath("~/");
使用hostingen环境获取正在执行的应用程序的路径。