私はここで行われたことをやろうとしています:
// 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() - これは私が時々目にするものです (これはめったに起こりません) が、null 参照例外が発生します (これらのプロパティの束は null です):