Solved

How do I call SetSessionStateBehavior(SessionStateBehavior.ReadOnly)  in ASP .Net MVC SignalR 2.x application?

Posted on 2014-03-14
1
1,288 Views
Last Modified: 2014-03-18
Hi:

I'm relatively new to the world of SignalR. I've got a couple of questions some of ya'll can possibly help me with.

My question sets are two fold. I've been looking at a chat example and there are a couple of things I'm trying understand.

This sample is built using SignalR 1.x libraries.
The code sample from the Global.asax.c file is as follows:
using System;
using System.Web;
using System.Web.Routing;
using System.Web.SessionState;
 
namespace MyApplication
{
    public class Global : System.Web.HttpApplication
    {
        private static RouteBase hubRoute;
 
        protected void Application_Start(object sender, EventArgs e)
        {
            hubRoute = RouteTable.Routes.MapHubs();
        }
 
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            if (IsSignalRRequest(Context))
            {
                // Turn readonly sessions on for SignalR
                Context.SetSessionStateBehavior(SessionStateBehavior.ReadOnly);
            }
        }
 
        private bool IsSignalRRequest(HttpContext context)
        {
            RouteData routeData = hubRoute.GetRouteData(new HttpContextWrapper(context));
 
            // If the routeData isn't null then it's a SignalR request
            return routeData != null;
        }
    }
}

Open in new window



Question 1) I'm not clear on the concept of SetSessionStateBehavior being set to ReadOnly. What is the effect of this and why would we do this in the SignalR instance?



Question 2) I've been currently tasked with moving our implementation from the SignalR 1.x to 2.x libraries. How would I replicate this functionality using the 2.x libraries?

Thanks,
JohnB
0
Comment
Question by:jxbma
1 Comment
 
LVL 27

Accepted Solution

by:
Sammy earned 500 total points
ID: 39930242
John,

1- Session state is not supported from within SignalR as it interferes with the processing of simultaneous requests from the same user. In 2.0 HTTPContext.Current.Session property is null because SignalR requests are handled before the session state module is initialized.

2- You don't need to duplicate this behavior anymore as its the default and only behavior for SignalR

for more troubleshooting SignalR issues, see this
http://www.asp.net/signalr/overview/signalr-20/troubleshooting-and-debugging/troubleshooting
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…

778 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question