8

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

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

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

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

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

4

1 回答 1

16

您可以尝试以下方法

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

它使用托管环境来获取执行应用程序的路径。

于 2013-05-05T10:02:36.680 回答