Signalr Hub文件中的HttpContext为空

本文关键字:HttpContext 为空 Hub 文件 Signalr | 更新日期: 2023-09-27 18:12:15

我有一个SignalR hub。当客户端断开连接时,我想执行一个文件操作。要做到这一点,我需要访问Server.MapPath .

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

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

我怎样才能从SignalR获得System.IO类中使用的本地路径?

System.IO.Directory.GetCurrentDirectory()给出IIS工作进程的位置。

Signalr Hub文件中的HttpContext为空

您可以尝试以下操作

 var path = (System.Web.HttpContext.Current == null)
                    ? System.Web.Hosting.HostingEnvironment.MapPath("~/")
                    : System.Web.HttpContext.Current.Server.MapPath("~/");
使用hostingenvironment获取执行应用程序的路径。