<?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; iis</title>
	<atom:link href="http://www.fboiton.com/tag/iis/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>Instalando un sitio MVC 2 en IIS 7.0</title>
		<link>http://www.fboiton.com/instalando-un-sitio-mvc-2-en-iis-7-0</link>
		<comments>http://www.fboiton.com/instalando-un-sitio-mvc-2-en-iis-7-0#comments</comments>
		<pubDate>Thu, 09 Sep 2010 15:56:15 +0000</pubDate>
		<dc:creator>fboiton</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[asp.net 4.0]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[MVC 2]]></category>

		<guid isPermaLink="false">http://www.fboiton.com/instalando-un-sitio-mvc-2-en-iis-7-0</guid>
		<description><![CDATA[Es buena idea siempre tener presente los pasos y sobre todo los detalles al momento de instalar en nuestro IIS 7.0 un website, sobre todo si estamos instalando un sitio MVC. Registrar la .Net Framework Esta es una operación sencilla &#8230; <a href="http://www.fboiton.com/instalando-un-sitio-mvc-2-en-iis-7-0">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es buena idea siempre tener presente los pasos y sobre todo los detalles al momento de instalar en nuestro IIS 7.0 un website, sobre todo si estamos instalando un sitio MVC. </p>
<h2>Registrar la .Net Framework</h2>
<p>Esta es una operación sencilla para la cual tomaré como referencia una pregunta de <a href="http://stackoverflow.com">stackoverflow.com</a> que pueden ver en este link:</p>
<p><a href="http://stackoverflow.com/questions/647598/how-to-register-asp-net-2-0-to-web-serveriis7">http://stackoverflow.com/questions/647598/how-to-register-asp-net-2-0-to-web-serveriis7</a></p>
<p>Podemos utilizar también Web Platform Installer segun se detalla en el siguiente punto: Instalar MVC 2.0</p>
<p>La opción más conocida es utilizar “aspnet.regiis.exe” el cual se encuentra en el path de la framework que estemos utilizando, por ejemplo para registrar la .Net Framework 2.0 en iis podemos utilizar:</p>
<pre><code>C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe –ir</code></pre>
<p><code></code></p>
</p>
<p>Cabe mencionar que la Framework 3.5 para ser utilizada en un website registramos la Framework 2.0 y en nuestro web.config referenciamos los assembly de la framework 3.5. Usualmente Visual Studio realiza esta configuracion por nosotros siempre y cuando la “targeting platform” sea la framework 3.5.</p>
<h2>Instalar MVC 2</h2>
<p>Para instalar MVC 2.0 es recomendable utilizar <a href="http://www.iis.net/webpi">Microsoft Web Platform Installer</a> , una vez lo tenemos instalado en nuestro IIS Manager seleccionamos el sitio web y buscamos el ícono de Web Platform Installer</p>
<p><a href="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_thumb.png" width="173" height="122"/></a> </p>
<p>Luego dentro de “Web Platform” seleccionamos la opción “Customize” dentro de “Frameworks and Runtimes” </p>
<p><a href="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_thumb_3.png" width="335" height="181"/></a> </p>
<p>Finalmente marcamos dentro de las opciones de “.NET Framework” lo que necesitamos (en este caso ASP.NET MVC 2)</p>
<p><a href="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_thumb_4.png" width="244" height="129"/></a> </p>
<h2>Configurar el Website.</h2>
<p>Para comenzar podemos dar click derecho en el folder “Sites” de nuestro server dentro del IIS Manager y seleccionar la opción “Add Web Site…”</p>
<p><a href="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_5.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_thumb_5.png" width="244" height="129"/></a> </p>
<p>Luego en el formulario de configuracion definimos el nombre del sitio, la ubicación de los archivos, la dirección IP a donde llegarán los requests y el nombre de dominio que utilizaremos.</p>
<p><a href="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_6.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_thumb_6.png" width="319" height="308"/></a> </p>
<h2>Crear un “Wildcard Script Map” para MVC</h2>
<p>Para esto seleccionamos el sitio web en nuestro IIS Manager y damos doble click en el ícono de “Handler Mappings”</p>
<p><a href="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_7.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_thumb_7.png" width="92" height="99"/></a> </p>
<p>Luego seleccionamos “Add Wildcard Script Map…” dentro del menú de acciones</p>
<p><a href="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_8.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_thumb_8.png" width="194" height="105"/></a> </p>
<p>y llenamos el form como se muestra a continuación… </p>
<p>Se recomienda utilizar el mismo Ejecutable que se tiene para el script map de “PageHandlerFactory”. Ojo, en el caso de que su sistema operativo sea 64 bit el path cambia. Por ejemplo:</p>
<p>Si el path donde tenemos instalada nuestra framework (32bit) es <em>C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll</em> podemos utilizar para 64bit el path <em>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll</em></p>
<p><a href="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_9.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_thumb_9.png" width="387" height="317"/></a> </p>
<p>Me atrevo a decir, que si tenemos dos script map para PageHandlerFactory como se muestra en la siguiente imagen:</p>
<p><a href="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_10.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_thumb_10.png" width="281" height="39"/></a> </p>
<p>seguramente necesitaremos crear dos wildcard script map para MVC</p>
<p><a href="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_11.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/InstalandounsitioMVC2.0enIIS7.0_82C4/image_thumb_11.png" width="331" height="56"/></a> </p>
<p>La creación de este wildcard script map es importante ya que MVC necesita que a los requests les sean aplicados los ruteos de nuestra aplicación.</p>
<h2>Publicar Los Archivos de nuestro Website</h2>
<p>“Para gustos se rompen generos” dicen por allí, asi que cada quien queda en libertad de seleccionar cuál es su forma preferida para colocar los archivos dentro del path definido al configurar nuestro sitio web, copiando los archivos, haciendo deploy con visual studio, etc…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fboiton.com/instalando-un-sitio-mvc-2-en-iis-7-0/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WinCache Extension para PHP en IIS</title>
		<link>http://www.fboiton.com/wincache-extension-para-php-en-iis</link>
		<comments>http://www.fboiton.com/wincache-extension-para-php-en-iis#comments</comments>
		<pubDate>Wed, 07 Jul 2010 19:43:39 +0000</pubDate>
		<dc:creator>fboiton</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[iis extension]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[wincache]]></category>

		<guid isPermaLink="false">http://www.fboiton.com/?p=37</guid>
		<description><![CDATA[Ya hay un release final de Windows Cache Extension for PHP es la versión 1.1 la cual incluye, funcionalidades nuevas como: Puede ser utilizada como una API de cache para almacenar objetos y variables de PHP. Tiene la opción de &#8230; <a href="http://www.fboiton.com/wincache-extension-para-php-en-iis">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ya hay un release final de <a href="http://www.iis.net/download/wincacheforphp" target="_blank">Windows Cache Extension for PHP</a> es la versión 1.1 la cual incluye, funcionalidades nuevas como:</p>
<ul>
<li>Puede ser utilizada como una API de cache para almacenar objetos y variables de PHP. </li>
<li>Tiene la opción de configurarse como Session Handler de PHP con persistencia en disco.</li>
</ul>
<p>Entre las características que posee esta extensión estan:</p>
<ul>
<li>Cache del bytecode de PHP en memoria, agilizando el tiempo de respuesta al no tener que parsear completamente los scripts PHP, lo cual reduce tambien el I/O overhead.</li>
<li>Debido a que la persistencia de los elementos en cache es en disco, situaciones como un Reciclado de los application pools no afectan en el cache ya creado.</li>
<li>Soporta las notificaciones de cambio de archivos, permitiendo refrescar los bytecodes en cache.</li>
<li>Cuenta con funciones de PHP para conocer el estado del cache.</li>
</ul>
<p>Creo que es una buena alternativa a utilizar en IIS para mejorar el performance de nuestras aplicaciones en PHP reduciendo el tiempo de interpretación de los scripts.</p>
<p>Para mayores detalles de uso podemos consultar el <a href="http://www.php.net/wincache/" target="_blank">Manual de PHP sobre Windows Cache</a> y para otros recursos sobre la extensión pueden consultar el blog de RuslanY con el <a href="http://ruslany.net/2010/06/wincache-extension-1-1-for-php-release-to-web/" target="_blank">post original</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fboiton.com/wincache-extension-para-php-en-iis/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>

