0

OnConnected/をオーバーライドしてから、 is nullOnDisconnectedのセッションを探すと。HttpContext.Current.Session

この時点で、セッションはすでに作成されていると想定していました。私は何かが恋しいですか?

4

3 に答える 3

0

アプリでセッションが有効になっていることを確認してください

HtpContext.Current.Sessionを読むと、確認する必要があるようです

「セッション状態が有効になっていない場合、セッション状態の値を設定または取得することはできません。アプリケーションのセッション状態設定を構成するには、Web.config ファイルで sessionState 要素のモード属性を設定します。セッション状態が有効で、存在しないセッション状態変数から値を要求すると、null が返されます。」

signalR がセッション状態を有効にする必要があると考えている場合は、いいえ [@dfowler によって確認] で別の SO の質問

于 2013-01-27T22:10:36.587 に答える
0

GetHttpContext を試しましたか?

var ctx = Context.Request.GetHttpContext();
于 2014-05-06T11:28:54.960 に答える
0

OnConnected / OnDisconnected の Cookie から sessionID を直接取得できます。

public override Task OnConnected() { var sessionId = Context.RequestCookies["ASP.NET_SessionId"].Value; }

sessionID 文字列があれば、各セッションの作成時に設定されたカスタム シングルトン ディクショナリからセッションを検索できます。

void Session_Start(object sender, EventArgs e) { GlobalSessions[context.Session.SessionID] = context.Session; }

もちろん、これは Web アプリケーションが単一のサーバー上にある場合にのみ機能します。

于 2015-11-29T23:22:22.603 に答える