31

HttpContextHUBから現在のセッションにアクセスしようとすると、が返されますnull

インターフェイスを利用してみましIRequiresSessionたが、うまくいきませんでした。誰かが私を助けることができますか?

4

3 に答える 3

46

SignalR接続(クライアントのすべてのハブ操作の基礎となる接続を含む)は、セッション状態をサポートしていません。必要に応じて有効にすることもできますが、セッション状態アクセスによって特定のクライアントの要求がシリアル化されるため、これを無効にすることを強くお勧めします。つまり、一方の要求がもう一方の要求をブロックするため、SignalRデュプレックスメッセージングのメリットは得られなくなります。長いポーリングトランスポートでは、受信接続は送信の試行をブロックします。

于 2011-10-21T20:11:42.117 に答える
0

たとえば、メモリキャッシュで使用し、httpはステートレスであるため、サーバーはクライアントを維持するためにセッションが必要ですが、Webソケットはキープアライブ接続であり、サーバーはクライアントとの接続を維持します。デフォルトでは、次のようなものは必要ありませんHttpContext セッション。

于 2015-05-04T09:08:58.440 に答える
0

隠しフィールドで同じ問題を次のように解決します。

  1. aspx ページに ASP Hiddenfield を追加しました。
  2. ページの読み込み時にセッション値を割り当てます(私の場合はボタンクライアントイベントで)
  3. $("FieldID").val() を使用して SignalR Hub に値を送信しました
于 2016-07-08T07:38:45.353 に答える