Signalr Hub文件中的HttpContext为null

时间:2013-05-05 09:22:01

标签: c# asp.net signalr server.mappath

我有一个SignalR中心。当客户端断开连接时,我想执行文件操作。 为此,我需要访问Server.MapPath

但是,由于我的Hub类不是.aspx或Web服务,因此没有HttpContext或请求。

我想过将IO工作委托给HTTP请求处理程序,但是我无法使用相对URI创建WebRequest,我需要能够在不同的位置部署解决方案。

如何从SignalR的System.IO类中获取本地路径?

System.IO.Directory.GetCurrentDirectory()为我提供了IIS工作进程的位置。

1 个答案:

答案 0 :(得分:14)

您可以尝试以下

 var path = (System.Web.HttpContext.Current == null)
                    ? System.Web.Hosting.HostingEnvironment.MapPath("~/")
                    : System.Web.HttpContext.Current.Server.MapPath("~/");

使用hostingen环境获取正在执行的应用程序的路径。