[Mono-devel-list] SQLServer SessionState

Hubert FONGARNAND informatique.internet at fiducial.fr
Wed Jul 13 09:06:46 EDT 2005


Le Mardi 12 Juillet 2005 17:45, Hubert FONGARNAND a écrit :
I've found where's the bug!
In fact,  i've done some tests with another program which store objects in the 
sessionstate, and it's working well...
But, if you do a Redirect after storing object in the session state, the 
session state is not saved in SQL.
the UpdateHandler function is not called if you do a "redirect" in a page...

example :
using System; 
using System.Collections; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Web; 
using System.Web.SessionState; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.HtmlControls; 
 
namespace test
{ 
	/// <summary> 
	/// Description rsume de WebForm1. 
	/// </summary> 
	public class WebForm1 : System.Web.UI.Page 
	{ 
		protected System.Web.UI.WebControls.Label Label2; 
		protected System.Web.UI.WebControls.Label Label3; 
		protected System.Web.UI.WebControls.Label Label4; 
		protected System.Web.UI.WebControls.Label Label1;
		protected System.Web.UI.WebControls.Button Btn; 
	 
		private void Page_Load(object sender, System.EventArgs e) 
		{ 
			// Placer ici le code utilisateur pour initialiser la page 
			Label1.Text=this.Request.Url.ToString(); 
			Label2.Text="Nb de sessions ouverte : "+Global.nb_session; 
			Label3.Text="Ip du serveur : 
"+System.Web.HttpContext.Current.Server.MachineName; 
			if (Session["nb_it"]==null) 
				Session["nb_it"]=new int(); 
			Session["nb_it"]=(int)Session["nb_it"]+1;
			Console.WriteLine(IsPostBack.ToString());
			if (!IsPostBack)
			{
				Testage testage=new Testage();
				testage.id="007";
				testage.label="James Bond";
				Session["object"]="James Bond";
			} 
			Label4.Text="Page charg "+Session["nb_it"]+" fois";
			Response.Redirect("WebForm2.aspx");  // Redirect to another page
		}
		
		[Serializable]
		internal class Testage 
		{
			public string id="";
			public string label="";
			
			public Testage()
			{
			} 
		} 
 
		#region Code gnr par le Concepteur Web Form 
		override protected void OnInit(EventArgs e) 
		{ 
			// 
			// CODEGEN: Cet appel est requis par le Concepteur Web Form ASP.NET. 
			// 
			InitializeComponent(); 
			base.OnInit(e); 
		} 
		 
		/// <summary> 
		/// Mthode requise pour la prise en charge du concepteur - ne modifiez pas 
		/// le contenu de cette mthode avec l'diteur de code. 
		/// </summary> 
		private void InitializeComponent() 
		{     
			this.Load += new System.EventHandler(this.Page_Load); 
 
		} 
		#endregion 
	} 
} 

I think the session UpdateHandler should be called when you do a redirect!

thanks

> I'm interested by storing sessions state into my pgsql server box...
> I've tried to configure my web.config like :
>     <sessionState mode="SQLServer"
> sqlConnectionString="SERVER=10.69.100.181;USER
> ID=postgres;PASSWORD=postgres;database=aspstate" timeout="20"/>
>
> and
>         <add key="StateDBProviderAssembly" value="Npgsql,
> Version=1.0.5000.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"/>
>
> i've created my aspstate database with a table :
> CREATE TABLE aspstatetempsessions
> (
>   sessionid varchar,
>   created timestamp,
>   expires timestamp,
>   timeout numeric,
>   staticobjectsdata bytea,
>   sessiondata bytea
> )
>
> It seem's to work, but when Mono try to store a session into sessiondata
> column I only get
> 000/000/000/000/000/000/000/000/000/000/000/000/000/000/000/000/000/000/000
>/000/000/000/000/000/000/000/000/000/000/000/000/000/000/ ...
> When Mono tries to retrieve the session it gets an empty one!
>
> what's the problem...
> thanks
>
> _______________________________________________
> Ce message et les éventuels documents joints peuvent contenir des
> informations confidentielles. Au cas où il ne vous serait pas destiné, nous
> vous remercions de bien vouloir le supprimer et en aviser immédiatement
> l'expéditeur. Toute utilisation de ce message non conforme à sa
> destination, toute diffusion ou publication, totale ou partielle et quel
> qu'en soit le moyen est formellement interdite. Les communications sur
> internet n'étant pas sécurisées, l'intégrité de ce message n'est pas
> assurée et la société émettrice ne peut être tenue pour responsable de son
> contenu. _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list

_______________________________________________
Ce message et les éventuels documents joints peuvent contenir des informations confidentielles.
Au cas où il ne vous serait pas destiné, nous vous remercions de bien vouloir le supprimer et en aviser immédiatement l'expéditeur. Toute utilisation de ce message non conforme à sa destination, toute diffusion ou publication, totale ou partielle et quel qu'en soit le moyen est formellement interdite.
Les communications sur internet n'étant pas sécurisées, l'intégrité de ce message n'est pas assurée et la société émettrice ne peut être tenue pour responsable de son contenu.



More information about the Mono-devel-list mailing list