2

我正在尝试做这里所做的事情:

// Get the HttpContext from the SignalR request
var context = Context.Request.GetHttpContext();

(即使用httpcontext进行只读)

这就是我想要实现的目标:

1) 在事件发生更改时调用集线器中的 SendMessage 方法

public override Task OnConnected()
{
    ActionManager.refreshStatusChanged += this.SendMessage;
    return base.OnConnected();
}

2) SendMessage 调用 Web 服务(可能需要几秒钟)并通过 signalR 发送响应。

public void SendMessage(object sender, ActionItemArgs e)
{
     var context = this.Context.Request.GetHttpContext(); // THIS WORKS RANDOMLY!!
     // USE CONTEXT FOR SOME OTHER STUFF

     // send response to clients
     this.Clients.Client(e.ConnectionId).actionInit(false, e);
}

- 这是正确的做法吗?我应该改用任务吗,如果可以,我仍然可以访问 this.Context.Request.GetHttpContext() 吗?

-this.Context.Request.GetHttpContext() - 这是我偶尔看到的(这种情况很少发生)但它确实发生了,导致空引用异常(这些属性的一堆是空的):

在此处输入图像描述

4

0 回答 0