<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>fboiton&#039;s blog &#187; sessionstate</title>
	<atom:link href="http://www.fboiton.com/tag/sessionstate/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fboiton.com</link>
	<description>Blog Técnico y personal: Ideas, Guias, Tutoriales, Comentarios, Pensamientos, Entre otros.</description>
	<lastBuildDate>Sun, 05 Feb 2012 22:01:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>IIS 7 + WebGarden + Session State + SQL Server</title>
		<link>http://www.fboiton.com/iis-7-webgarden-session-state-sql-server</link>
		<comments>http://www.fboiton.com/iis-7-webgarden-session-state-sql-server#comments</comments>
		<pubDate>Fri, 11 Jun 2010 23:42:09 +0000</pubDate>
		<dc:creator>fboiton</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sessionstate]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[webgarden]]></category>
		<category><![CDATA[wincache]]></category>

		<guid isPermaLink="false">http://www.fboiton.com/?p=31</guid>
		<description><![CDATA[Hoy en el trabajo observamos un comportamiento un poco extraño relacionado con la información que almacenamos en Sesión y que utilizamos en una Web Application corriendo en un pequeño WebGarden teniendo configurado como Session State Server la opción de SQL &#8230; <a href="http://www.fboiton.com/iis-7-webgarden-session-state-sql-server">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hoy en el trabajo observamos un comportamiento un poco extraño relacionado con la información que almacenamos en Sesión y que utilizamos en una Web Application corriendo en un pequeño WebGarden teniendo configurado como Session State Server la opción de SQL Server. </p>
<p>Algunos links sobre Session State y la opción de SQL Server Session Mode</p>
<p><a href="http://www.codeproject.com/KB/aspnet/ExploringSession.aspx#21">Overview en CodePoject</a></p>
<p><a href="http://support.microsoft.com/kb/317604">How-To de Microsoft Support</a></p>
<p><a href="http://msdn.microsoft.com/en-us/magazine/cc163730.aspx">Fast, Scalable, and Secure Session State Management for Your Web Applications</a></p>
<p>En ocasiones, al cambiar de servidor dado a la distribución que realiza un load balancer, la aplicación parecía no poder obtener la información almacenada en sesión y por ende no poder continuar con el proceso que debía desarrollar. Al momento de revisar la base de datos de sesión pudimos percatarnos que habían 2 tuplas para una misma ASP.NetSessionId</p>
<p><a href="http://www.fboiton.com/images/IIS7WebGardenSessionStateSQLServer_EA2C/image.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="73" alt="image" src="http://www.fboiton.com/images/IIS7WebGardenSessionStateSQLServer_EA2C/image_thumb.png" width="384" border="0" /></a> </p>
<p>Query:<code> select * from ASPStateTempSessions where SessionId like '%piltae45debwl355ek3v0545%'</code></p>
<p>Y cómo es esto? Ok, resulta que el SessionId que utilizamos en nuestra aplicación no es lo único que se utiliza como llave en la tabla de SQL ya que está formada por:</p>
<p>Session Id + Application Id</p>
<p>(ver mas info acá: <a href="http://msdn.microsoft.com/en-us/library/aa478952.aspx">Session State Providers</a>)</p>
<p>Resultó entonces que por cada servidor nos estaba generando una tupla en nuestro storage de sesión, la primera con la información que habíamos almacenado y la segunda como una nueva sesión totalmente vacía. Esto debido a que a cada webserver le estaba asignando un diferente Application Id.</p>
<p>Me dirán por ahí que esto no debía suceder… también hay un trasfondo relacionado con la aplicación que casualmente permite esto, sin embargo esto lo dejamos para otro post <img src='http://www.fboiton.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Solución:</p>
<p>Debemos irnos a cada uno de los webservers del WebGarden y en cada uno debemos definir el “ID” del website. Para ello debemos colocarnos en “Sites”</p>
<p><a href="http://www.fboiton.com/images/IIS7WebGardenSessionStateSQLServer_EA2C/image_3.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="45" alt="image" src="http://www.fboiton.com/images/IIS7WebGardenSessionStateSQLServer_EA2C/image_thumb_3.png" width="462" border="0" /></a> </p>
<p>Dar click derecho y en “Manage Web Site” seleccionamos la opción “Advanced Settings”</p>
<p><a href="http://www.fboiton.com/images/IIS7WebGardenSessionStateSQLServer_EA2C/image_4.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="161" alt="image" src="http://www.fboiton.com/images/IIS7WebGardenSessionStateSQLServer_EA2C/image_thumb_4.png" width="470" border="0" /></a> </p>
<p>y finalmente nos aseguramos que el Website en cada uno de los Web Servers de nuestro WebGarden tenga el mismo ID</p>
<p><a href="http://www.fboiton.com/images/IIS7WebGardenSessionStateSQLServer_EA2C/image_5.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="86" alt="image" src="http://www.fboiton.com/images/IIS7WebGardenSessionStateSQLServer_EA2C/image_thumb_5.png" width="436" border="0" /></a> </p>
<p>Reiniciamos los IIS para que todo camine en orden y voila! <img src='http://www.fboiton.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.fboiton.com/iis-7-webgarden-session-state-sql-server/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

