Web Forms :: How To Work With Session Mode SQL Server
Aug 31, 2012
I am in a need to work with Session Object with Mode SQL Server.Till Now I have worked with Default Session Mode that is Inproc,I have done only 2 projects with this,now this is my third project which involves Payment Module,so I would like to go for SQL server mode,as in my last Project I face lot of difficulties with Session object while implementing Payment Gateway.
My website session was expired within seconds. I tried every possible solution but problem was same. Now i changed my session mode to stateserver, but when i logout from website its giving error. Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode. I have mention [Serializable] on class. And some of hyper links also not working after changing the mode to stateserver.
My problem is regarding title written above. Currently I have some functions that rely on Sessions to do the job. Everything works smoothly when it is left to default. However, I do not like the idea of losing sessions in case of crash and I have modified my web.config to use Sql Server mode instead.
I have run the necessary commands to create tables and stored procedures in my database using aspnet_sql.exe. I am able to store values into the database but have not been successful retrieving them. Since it has been working fine with InProc mode, I think I can safely assume that there's nothing wrong with my codes. Here's my web.config setting:
I have two different IIS applications within the same domain(let us say www.mydomain.com) , both of these applications use the same database instance(same connectionstring), now what I want is that both of applications can see each sessions variables , can SQL Server session state mode helps in this case? Did someone try that before? Is there any other way to share the session variables?
I am working on a website and this is my first web project. Scenario for Session I have created a database for my project with security level little bit high. I want to manage session for each and every user who is logging in to my website. Session state can be used using Cookie as well as URL, only one at a time. Now I went over with all four session state modes. i.e 1. InProc 2. State Server 3. Sql Server 4. Custom
Now after reviewing from all these modes I am in confusion which one should I use Sql Server or Custom. Basically i want to store session related information in my own database instead of Aspnet_db which is a default database provided by microsoft. I have created all tables related to login and registration. But I dont know how to store session into my database. What tables do I need to create so as to maintain into database. I want to create a complete log of session and login related information into my database(Persistant atleast for 1 year). I want to use machinekey as AES and SHA1.
What all things do i need to specify in webconfig? My Data Source= 192.168.1.5 Database name= db.mdf What I need to know about. What tables do i need to add to my database to store session related information. eg. Session id (Any other field is also stored or not), Session Time, Session Start Time, Session End Time, Session Expire Time. I dont know what all things are usually taken. Do I need to encrypt Session Id before storing into database. If Yes Encryption will be automatic or do i need to write some code to do this other than that I wrote in web config above. How mode='custom' will be used into web config using my database. in following code
Customer were getting "View State Validation Error" due to worker process recycling at our production webserver and to fix that i applied machinekey and then move my Session state Mode from In Proc to State Server to retain session data and not kick out the customer to relogin. I had serialization issue with one object which has to be stored in session but when i moved it out of session i could able to resolve the issue.
But doing all these i was partly successfull in keeping the user in their session when Worker Process recycle event occurs.I was able to refresh the page or make a post back by clicking the refresh button and also able to retain the session values. But the Problem occurs when sending asynchronous request to server which we do periodically every 15 minutes from the moment the user logs in.The web page doesnot update data on website when sending asynchronous request.By Debugging I found at this particular code point it fails to make a postback which is required.
<%=GetHintFromServer%> (When there is no Worker Process recycle i t gets replaced by WebForm_DoCallback('__Page',message,ShowHint,null,null,false) on postback) Everything works fine when there is no Worker Process Recyling but when it happens looks like sending request asynchronously using javascript fails .Remember When I make a post back by manually clicking submit button everything works fine.
In my database I have already installed the aspnetdb membership tables and process (think that was running : aspnet_regsql.exe) with all my other custom build tables for my project. All works fine.I want to use SQL server session state. (Asp.net 2.0, SQL server 2005)My project will be on a SHARED HOSTING environment, and I only want ONE database that holds all I need ( membership, custom tables, session state table, etc)I see two files in : C:WINDOWSMicrosoft.NETFrameworkv2.0.50727
InstallSqlState.sql InstallSqlStateTemplate.sql
I assume I run the "InstallSqlStateTemplate.sql" and follow instruction from this reference to SQL server session state operational in my single project database : [URL]
In my web application, I set the mode of session state as State Server and point to another server. After run some days, I always meet following exception:
The state server has closed an expired TCP/IP connection. The IP address of the client is 192.168.80.157. The expired Read operation began at 08/25/2010 14:18:03.
I wanted my local iis running application to connect my database in sql authentication mode rather than windows mode,
but it is showing errors of " Cannot open database "aspnetdb" requested by the login. The login failed. Login failed for user 'DBUser'. ". i also ublocked port from firewall,and allowed remote connection of mssql from sql manager, enabled TCP/IP and named piped protocols from SQL surface config, and with sql manager i also changed server authentication mode to sql from windows. my datastring is <add connectionString="Data Source=PARTHIV-PCSQLEXPRESS;Initial Catalog=aspnetdb;User ID=******;Password=******/" name="LocalSqlServer" providerName="System.Data.SqlClient" />
i made a user named DBUser in database as well i don't understand where it gone wrong ???
Visual Studio ( VSTS 2008 ) design mode work good for long time and from about 2 weeks ago it's suddenly stop view any thing in design mode i tried a lot with trying in another projects even in a simple web page but no way it's doesn't view any thing in design mode ... I think to reinstall VS 2008 again but I don't know if is there any outher solution for that ?
A few basic yes/no questions to see if I am expecting the impossible within VWDE:
At one point I thought I was given an option to create an external css file & have all styles automatically stored in the external file. Is there such a setting? ( Right now I have an external css file created & linked to the page, but as I work on the web page in Design view all new styles are created in the web page & I need to use the style manager to move them to the external file. )Can I tell VWDE to generate css for all formatting as I create a new table in the web page in design view? In other words, can I work strictly in web page design view yet have all formatting code - including the table layout - generated into the external css file?If I create style code for a web page table, does that style code need to be manually modified each time I add or remove rows from the table?Is there a VWDE funtion/tool to generate an external css file for an existing web page that contains embedded/inline styles? Right now I find that I need to individually move each style to an external sheet - i.e. Q1.If I were able in some way to create an external css file to handle all formatting for a given web page, would I have to manually create & maintain a second external css file to provide a printer-friendly format?Basically I have found so far that WYSIWYG editting in VWDE is ok up to a point, but support for CSS in Design view is very limited. It seems that if I want to employ CSS, I have to edit & separately manage CSS code rather than work in a WYSIWYG mode.
TI am hoping that even simple yes/no answers to the above will help me determine if VWDE is an exercise in frustration or worthwhile for me.
I've some doubts on sessions in asp.net. If the client send a first request to a website then in response the site sends a sessionId which will be stored in browser as a sessioncookie upto this point its clear for me. If the same client sends the second request the session ID should send to the server to idetify the user.my question is How this will be send to the server?
second question: why not the session_End event won't get fired if the session mode is OUTProc??if i want to execute some code when session ends where can i put that code??
I would like to find a way to raise an exception if the Session is written to when in readonly mode. When EnableSessionState is set to "ReadOnly", values can still be put in Session, but the next request they will not be there. This seems somewhat dangerous.
One option is to create a helper class which we alway use to access session. However, this still leaves room for a developer to inadvertently use session directly, and fall into the "readonly" trap. Is there a way to create a CustomSessionStateDataStore that sits on top of the existing session code? I could not see an obvious way, and you can't inherit from System.Web.SessionState.SessionStateStoreData directly.
am trying to write an HttpModule that will work in IIS7 with integrated pipeline mode AppPool. Within this module I need to access Session variables and to be able to capture the Session Start and End events. I have found a couple of articles on this topic that indicate the need to modify the behavior of the HttpHandler in PostAcquireRequestState to force the Session for the context to be initialized. The article I am using as a template is posted here:[URL]In my case I am getting the following error:
[NullReferenceException: Object reference not set to an instance of an object.] System.Web.PipelineModuleStepContainer.GetEventCount(RequestNotification notification, Boolean isPostEvent) +30 System.Web.PipelineStepManager.ResumeSteps(Exception error) +1112 System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) +113 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +616
I believe that this error implies a problem with attempting to attach an event handler multiple times. I am aware that the modules Init function can be called more than once and have set a static initialization flag which ensures that I will only ever attach the event handler once.In the most condensed form my code is as follows:
public class HttpModule : IHttpModule, IRequiresSessionState
I have an ASP.NET web application that takes user input across several forms. Sort of like a wizard. On the first form, the user enters information then clicks the "Next" button. In the Click event of the button I save some information to the Session object (via Properties in the Master page). I then Redirect to the next page. Here is an example of what I am doing:
protected void NextButton_Click(Object sender, EventArgs args) { //Go to the next form Master.SessionVal1 = Value1; Master.SessionVal2 = Value2; Response.Redirect("~/TheNextPage.aspx", false); }
In the MasterPage.cs..
public long Value1 { get { return (long)Session["Value1"]; } set { Session["Value1"] = value; } }
public long Value2 { get { return (long)Session["Value2"]; } set { Session["Value2"] = value; } }
Pretty basic stuff. When I run this in debug mode in VS2008 it works perfectly. When I push this to a test server (IIS7) I get NullReference exceptions when I try to access Value1, Value2, etc. which is stored in the Session object. UPDATE: I have discovered that if I migrate the code to one server I get the problem as described above. BUT, if I promote to another server it works as expected. Both servers are Windows Server 2008 with IIS7. I have looked at the application pool settings and the state management settings and I do not see any differences.
My session variables don't get saved if the SessionState mode in the web.config file is set to StateServer. But when I changed it to InProc, then everything is fine and good. I'm trying to save a custom built object (or class) into the session after the user logs in.
I have problem is that when i force to clear session so it remove all session on to server. i mean i open website at 2 systems and one system logout website so 2nd automatically logout.i dont know when is the problem. i m using Session.Abundent for current session.but it clear all.
Can I set the connection string for custom session state mode in global.asax file? I cannot hard code the connection string in the webconfig file. ,I will get the connection string at runtime,Can i set the connection string for custom sessionmode/sqlserver session mode in the global.asax file(like in application statrevent, or aquirerequeststate event.If YES How to do that?
gaining mode changing for formview in VB.The problem is that, the current mode im using was ReadOnly, and i want to add some button so thatit could connect to Edit mode in the same formview.Is it necessary to add modechanging and modechanged in the back code?