我正在尝试做这里所做的事情:
// 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() - 这是我偶尔看到的(这种情况很少发生)但它确实发生了,导致空引用异常(这些属性的一堆是空的):