<?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>Pablo Viale &#187; IIS</title>
	<atom:link href="http://www.viale.mx/index.php/category/iis/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.viale.mx</link>
	<description>Consejos para diseño y desarrollo de aplicaciones web</description>
	<lastBuildDate>Wed, 29 Jun 2011 22:18:01 +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>BC30002: Type &#8216;System.Data.Linq.Mapping.DatabaseAttribute&#8217; is not defined.</title>
		<link>http://www.viale.mx/2011/06/29/bc30002-type-system-data-linq-mapping-databaseattribute-is-not-defined/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=bc30002-type-system-data-linq-mapping-databaseattribute-is-not-defined</link>
		<comments>http://www.viale.mx/2011/06/29/bc30002-type-system-data-linq-mapping-databaseattribute-is-not-defined/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 22:18:01 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[ASP.NET 2.0 / 3.5]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[SQL (mySQL)]]></category>

		<guid isPermaLink="false">http://www.viale.mx/?p=549</guid>
		<description><![CDATA[Si estás utilizando LINQ en tu aplicación de asp.net y te sale este error: BC30002: Type 'System.Data.Linq.Mapping.DatabaseAttribute' is not defined. Es probable que no hayas hecho referencia del assembly en el archivo web.config. Entre el tag assemblies y /assemblies de tu archivo web.config coloca lo siguiente: Clic para mostrar texto plano XML: &#60;add assembly="System.Data.Linq, Version=3.5.0.0, [...]]]></description>
			<content:encoded><![CDATA[<p>Si estás utilizando LINQ en tu aplicación de asp.net y te sale este error:</p>
<p><code>BC30002: Type 'System.Data.Linq.Mapping.DatabaseAttribute' is not defined.</code></p>
<p>Es probable que no hayas hecho referencia del assembly en el archivo web.config.<br />
Entre el tag assemblies y /assemblies de tu archivo web.config coloca lo siguiente:</p>
<div class="igBar"><span id="lxml-2"><a href="#" onclick="javascript:showPlainTxt('xml-2'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-2">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;add</span> <span style="color: #000066;">assembly</span>=<span style="color: #ff0000;">"System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"</span><span style="font-weight: bold; color: black;">/&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>¡Suerte!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2011/06/29/bc30002-type-system-data-linq-mapping-databaseattribute-is-not-defined/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C&#243;mo instalar PHP en Windows 2003 con IIS 6</title>
		<link>http://www.viale.mx/2010/07/16/como-instalar-php-en-windows-2003-con-iis-6/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=como-instalar-php-en-windows-2003-con-iis-6</link>
		<comments>http://www.viale.mx/2010/07/16/como-instalar-php-en-windows-2003-con-iis-6/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 18:31:38 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[IIS]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.viale.mx/?p=487</guid>
		<description><![CDATA[Generalmente es un dolor de cabeza instalar PHP en Windows, es por eso que hice esta guía que explica como hacer una instalación básica de PHP. Si necesitas algo más especializado como instalar extensiones utiliza Google para encontrar otros tutoriales. 1. Descarga los archivos correctos Ingresa a http://php.net/downloads.php y descarga el “zip package”. No sigas [...]]]></description>
			<content:encoded><![CDATA[<p>Generalmente es un dolor de cabeza instalar PHP en Windows, es por eso que hice esta guía que explica como hacer una instalación básica de PHP. Si necesitas algo más especializado como instalar extensiones utiliza Google para encontrar otros tutoriales.</p>
<h2>1. Descarga los archivos correctos</h2>
<p>Ingresa a <a href="http://php.net/downloads.php">http://php.net/downloads.php</a> y descarga el “zip package”. No sigas la liga que dice windows.php.net:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/07/image.png"><img class="wlDisabledImage" style="display: inline; border: 0px;" title="image" src="http://www.viale.mx/wp-content/uploads/2010/07/image_thumb.png" border="0" alt="image" width="497" height="529" /></a></p>
<p>Cópialos en tu servidor en “C:\PHP”. Apégate a esta ruta, no intentes rutas extrañas que tengan espacios o que sean muy largas.</p>
<h2>2. Configura PHP.INI</h2>
<p>En los archivos que acabas de descomprimir encontrarás un archivo llamado “php.ini-recommended” o algo similar, renómbralo a “php.ini”, y con un editor de texto plano encuentra la línea:</p>
<p>; cgi.force_redirect = 1</p>
<p>Y cámbiala por:</p>
<p>cgi.force_redirect = 0</p>
<h2>3. Copia los archivos necesarios al directorio de Windows</h2>
<p>Copia los siguientes archivos:</p>
<ul>
<li>php5isapi.dll</li>
<li>php.ini</li>
</ul>
<p>a la carpeta “C:\WINDOWS\system32”</p>
<p>O bien, agrega la ruta “c:\php” a la variable de entorno PATH del servidor.</p>
<h2>4. Configura IIS</h2>
<p>En la consola de IIS abre “Web service extensions” y agrega una nueva:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/07/image1.png"><img class="wlDisabledImage" style="display: inline; border: 0px;" title="image" src="http://www.viale.mx/wp-content/uploads/2010/07/image_thumb1.png" border="0" alt="image" width="488" height="209" /></a></p>
<p>Pon “PHP” en “Extension name” y selecciona el archivo “c:\php\php5isapi.dll”. Marca la casilla que dice “Set extension status to Allowed”.</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/07/image2.png"><img class="wlDisabledImage" style="margin: 0px; display: inline; border: 0px;" title="image" src="http://www.viale.mx/wp-content/uploads/2010/07/image_thumb2.png" border="0" alt="image" width="398" height="339" /></a></p>
<p>Al final debe verse así en la lista de extensiones:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/07/image3.png"><img class="wlDisabledImage" style="margin: 0px; display: inline; border: 0px;" title="image" src="http://www.viale.mx/wp-content/uploads/2010/07/image_thumb3.png" border="0" alt="image" width="258" height="18" /></a></p>
<p>Todavía en la consola de IIS, selecciona el sitio web o el directorio virtual al que quieras dar permisos de ejecutar PHP y abre sus propiedades. Ve a la pestaña “Home Directory” y haz clic en el botón “Configuration”:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/07/image4.png"><img class="wlDisabledImage" style="margin: 0px; display: inline; border: 0px;" title="image" src="http://www.viale.mx/wp-content/uploads/2010/07/image_thumb4.png" border="0" alt="image" width="472" height="458" /></a></p>
<p>En la nueva ventana, abre la pestaña “Mappings” y agrega una extensión ISAPI con el archivo “C:\php\php5isapi.dll” y los verbos “GET,POST,HEAD”:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/07/image5.png"><img class="wlDisabledImage" style="margin: 0px; display: inline; border: 0px;" title="image" src="http://www.viale.mx/wp-content/uploads/2010/07/image_thumb5.png" border="0" alt="image" width="472" height="458" /></a></p>
<p>Haz clic en todos los botones “OK” hasta salir.</p>
<h2>5. Configura los permisos</h2>
<p>Ahora fíjate en qué “Application pool” está corriendo tu sitio web o directorio virtual.</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/07/image6.png"><img class="wlDisabledImage" style="margin: 0px; display: inline; border: 0px;" title="image" src="http://www.viale.mx/wp-content/uploads/2010/07/image_thumb6.png" border="0" alt="image" width="472" height="458" /></a></p>
<p>Y en la consola de IIS, arriba de “Web Sites” encontrarás los “Application pools”, abre las propiedades de la “pool” en la que corre tu sitio web y en su pestaña “Identity” fíjate qué usuario se utiliza:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/07/image7.png"><img class="wlDisabledImage" style="margin: 0px; display: inline; border: 0px;" title="image" src="http://www.viale.mx/wp-content/uploads/2010/07/image_thumb7.png" border="0" alt="image" width="461" height="435" /></a></p>
<p>Ahora tienes que darle permisos a este usuario sobre el directorio “c:\php”.</p>
<p>Abre el explorador de Windows y señala el directorio “php” dentro de “c:\”, y ve a sus propiedades, luego a la pestaña “Security”, haz clic en “Add” y agrega al usuario que encontraste arriba. Luego oprime el botón “Advanced” y asegúrate de que esté marcada la casilla que dice “Replace permission entries on all child objects with entries shown here that apply to child objects”:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/07/image8.png"><img class="wlDisabledImage" style="margin: 0px; display: inline; border: 0px;" title="image" src="http://www.viale.mx/wp-content/uploads/2010/07/image_thumb8.png" border="0" alt="image" width="618" height="501" /></a></p>
<p>Oprime “OK” hasta cerrar todo.</p>
<h2>6. Haz pruebas</h2>
<p>Crea un archivo llamado, por ejemplo, “phpinfo.php” y agrega esta línea de código:</p>
<p>
<div class="igBar"><span id="lphp-4"><a href="#" onclick="javascript:showPlainTxt('php-4'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-4">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?</span> <a href="http://www.php.net/phpinfo"><span style="color:#000066;">phpinfo</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Ahora abre esa página en un navegador, si ves esto:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2010/07/image9.png"><img class="wlDisabledImage" style="margin: 0px; display: inline; border: 0px;" title="image" src="http://www.viale.mx/wp-content/uploads/2010/07/image_thumb9.png" border="0" alt="image" width="604" height="247" /></a></p>
<p>es que lo lograste.</p>
<p>Si no, <img class="wlEmoticon wlEmoticon-sadsmile" style="border-style: none;" src="http://www.viale.mx/wp-content/uploads/2010/07/wlEmoticonsadsmile.png" alt="Triste" />, intenta buscar los errores que te aparezcan en Google.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2010/07/16/como-instalar-php-en-windows-2003-con-iis-6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress en IIS te da el error 404 Page not found</title>
		<link>http://www.viale.mx/2009/09/07/wordpress-en-iis-te-da-el-error-404-page-not-found/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=wordpress-en-iis-te-da-el-error-404-page-not-found</link>
		<comments>http://www.viale.mx/2009/09/07/wordpress-en-iis-te-da-el-error-404-page-not-found/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 00:28:03 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[IIS]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.viale.mx/?p=370</guid>
		<description><![CDATA[Este problema me ha pasado un par de veces, así que decidí poner aquí la solución para el futuro, espero que te sirva. Instalo WordPress en IIS (Windows Server 2003) como se explica aquí, todo va bien, intento abrir mi blog mediante un navegador y me sale: The page cannot be found Entonces para comprobar [...]]]></description>
			<content:encoded><![CDATA[<p>Este problema me ha pasado un par de veces, así que decidí poner aquí la solución para el futuro, espero que te sirva.</p>
<p>Instalo WordPress en IIS (Windows Server 2003) como se explica <a href="http://codex.wordpress.org/Installing_WordPress">aquí</a>, todo va bien, intento abrir mi blog mediante un navegador y me sale:</p>
<p><code>The page cannot be found</code></p>
<p>Entonces para comprobar que configuré bien el sitio web y la carpeta, pongo un archivo "hola mundo" con terminación .html.  Sí abre.  Pongo un archivo "hola mundo" con terminación .php.  No abre.</p>
<p>Entro a Google y encuentro muchos artículos como <a href="http://www.verysimple.com/blog/2008/01/05/php-on-windows-2003-iis-6-displays-404-page-not-found/">este</a>, <a href="http://www.seo-strategies.org/2009/08/wp-adminphp-404-not-found-error-wordpress/">este</a>, y <a href="http://www.iisadmin.co.uk/?p=4">este otro</a>, y verifico que ya hice todo correctamente.  Sigue pasando lo mismo, el mismo error, <code>The page cannot be found</code>.</p>
<p>Siempre hay un punto que paso por alto, y es el siguiente.  Abre tu sitio web, ve a la pestaña <code>Home Directory</code>, luego en la sección <code>Application settings</code> haz clic en el botón <code>Configuration</code> y luego en la pestaña <code>Mappings</code> encontrarás el error, tienes que dar de alta la extensión <code>.php</code> en <code>Application extensions</code> con estos parámetros:</p>
<ul>
<li>Executable: "c:\php\php5isapi.dll"<br />
Pon las comillas, y modifica la ruta de acuerdo a tu servidor.</li>
<li>Extension: .php</li>
<li>Verbs: Limit to: GET, POST, HEAD</li>
<li>Script engine: seleccionado</li>
<li>Verify that file exists: seleccionado</li>
</ul>
<p>, tal como se muestra en la siguiente imagen:</p>
<p><a href="http://www.viale.mx/wp-content/uploads/2009/09/phpnotfound.gif"><img src="http://www.viale.mx/wp-content/uploads/2009/09/phpnotfound.gif" alt="phpnotfound" title="phpnotfound" width="471" height="507" class="alignnone size-full wp-image-372" /></a></p>
<p>Pasa con WordPress, pero en realidad es un problema de configuración de PHP, por lo que te puede ocurrir con cualquier otra aplicación desarrollada en ese lenguaje.</p>
<p>¡Suerte!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2009/09/07/wordpress-en-iis-te-da-el-error-404-page-not-found/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Da de alta los MIME Types para las nuevas extensiones de Office</title>
		<link>http://www.viale.mx/2008/07/29/da-de-alta-los-mime-types-para-las-nuevas-extensiones-de-office/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=da-de-alta-los-mime-types-para-las-nuevas-extensiones-de-office</link>
		<comments>http://www.viale.mx/2008/07/29/da-de-alta-los-mime-types-para-las-nuevas-extensiones-de-office/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 15:21:39 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[IIS]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/2008/07/29/da-de-alta-los-mime-types-para-las-nuevas-extensiones-de-office/</guid>
		<description><![CDATA[En IIS, en tu sitio web, ve a propiedades, luego a HTTP Headers y haz clic en el botón MIME Types. Agrega las siguientes: Extensión, MIME Type .docm,application/vnd.ms-word.document.macroEnabled.12 .docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document .dotm,application/vnd.ms-word.template.macroEnabled.12 .dotx,application/vnd.openxmlformats-officedocument.wordprocessingml.template .potm,application/vnd.ms-powerpoint.template.macroEnabled.12 .potx,application/vnd.openxmlformats-officedocument.presentationml.template .ppam,application/vnd.ms-powerpoint.addin.macroEnabled.12 .ppsm,application/vnd.ms-powerpoint.slideshow.macroEnabled.12 .ppsx,application/vnd.openxmlformats-officedocument.presentationml.slideshow .pptm,application/vnd.ms-powerpoint.presentation.macroEnabled.12 .pptx,application/vnd.openxmlformats-officedocument.presentationml.presentation .xlam,application/vnd.ms-excel.addin.macroEnabled.12 .xlsb,application/vnd.ms-excel.sheet.binary.macroEnabled.12 .xlsm,application/vnd.ms-excel.sheet.macroEnabled.12 .xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xltm,application/vnd.ms-excel.template.macroEnabled.12 .xltx,application/vnd.openxmlformats-officedocument.spreadsheetml.template Si no agregas las extensiones, entonces si colocas un archivo en [...]]]></description>
			<content:encoded><![CDATA[<p>En IIS, en tu sitio web, ve a propiedades, luego a HTTP Headers y haz clic en el botón MIME Types.<br />
Agrega las siguientes:</p>
<p>Extensión, MIME Type</p>
<p><code>.docm,application/vnd.ms-word.document.macroEnabled.12<br />
.docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document<br />
.dotm,application/vnd.ms-word.template.macroEnabled.12<br />
.dotx,application/vnd.openxmlformats-officedocument.wordprocessingml.template<br />
.potm,application/vnd.ms-powerpoint.template.macroEnabled.12<br />
.potx,application/vnd.openxmlformats-officedocument.presentationml.template<br />
.ppam,application/vnd.ms-powerpoint.addin.macroEnabled.12<br />
.ppsm,application/vnd.ms-powerpoint.slideshow.macroEnabled.12<br />
.ppsx,application/vnd.openxmlformats-officedocument.presentationml.slideshow<br />
.pptm,application/vnd.ms-powerpoint.presentation.macroEnabled.12<br />
.pptx,application/vnd.openxmlformats-officedocument.presentationml.presentation<br />
.xlam,application/vnd.ms-excel.addin.macroEnabled.12<br />
.xlsb,application/vnd.ms-excel.sheet.binary.macroEnabled.12<br />
.xlsm,application/vnd.ms-excel.sheet.macroEnabled.12<br />
.xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet<br />
.xltm,application/vnd.ms-excel.template.macroEnabled.12<br />
.xltx,application/vnd.openxmlformats-officedocument.spreadsheetml.template</code></p>
<p>Si no agregas las extensiones, entonces si colocas un archivo en tu sitio web, cuando el visitante haga clic en él, el servidor regresará un error, y el visitante no podrá descargarlo.  Esto es especialmente importante para el webmail.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2008/07/29/da-de-alta-los-mime-types-para-las-nuevas-extensiones-de-office/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo instalar una DLL en el GAC (Global Assembly Cache)</title>
		<link>http://www.viale.mx/2008/07/07/como-instalar-una-dll-en-el-gac-global-assembly-cache/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=como-instalar-una-dll-en-el-gac-global-assembly-cache</link>
		<comments>http://www.viale.mx/2008/07/07/como-instalar-una-dll-en-el-gac-global-assembly-cache/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 22:40:36 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[ASP.NET 2.0 / 3.5]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/2008/07/07/como-instalar-una-dll-en-el-gac-global-assembly-cache/</guid>
		<description><![CDATA[En ocasiones, cuando estás trabajando en Visual Web Developer 2008 con componentes ASP.NET de terceros (third party), notarás que no funciona el Intellisense y además el diseñador marca que tu componente no está definido. Este es un ejemplo de este problema con el componente FreeTextBox: Noté que esto me pasaba por la siguiente razón: Los [...]]]></description>
			<content:encoded><![CDATA[<p>En ocasiones, cuando estás trabajando en <code>Visual Web Developer 2008</code> con componentes ASP.NET de terceros (third party), notarás que no funciona el <code>Intellisense</code> y además el diseñador marca que tu componente no está definido.  Este es un ejemplo de este problema con el componente <code>FreeTextBox</code>:</p>
<p><a href='http://www.viale.com.mx/wp-content/uploads/2008/07/notdeclared.gif' title='Component Not Declared'><img src='http://www.viale.com.mx/wp-content/uploads/2008/07/notdeclared.gif' alt='Component Not Declared' /></a></p>
<p>Noté que esto me pasaba por la siguiente razón:<br />
Los archivos de mi aplicación están hosteados en un servidor (no en mi PC de desarrollo), por lo que creé una conexión a una unidad de red, asignándola a una letra.  Es decir, había mapeado <code>\\servidor\inetpub\wwwroot\proyecto</code> a <code>w:\proyecto</code>.  Al parecer si tienes tu servidor web de desarrollo corriendo en tu misma PC, lo anterior no ocurre, pero me parece que es muy probable que trabajes en una PC de desarrollo y accedas a un servidor de desarrollo mediante la red local donde están (y corren) los archivos de tu aplicación.  Al menos es mi caso.</p>
<p>Para corregir esta situación tienes que agregar los <code>DLLs</code> del control en el <code>GAC</code>.</p>
<p>Deberás usar la utilidad <code>gacutil.exe</code> que viene en el SDK del <code>.Net Framework 2</code>.  Si no lo tienes, descarga el SDK de aquí:<br />
<a href="http://www.asp.net/Downloads/essential/">http://www.asp.net/Downloads/essential/</a></p>
<p>Coloca el componente (el DLL) en un fólder de la PC en la que usas <code>Visual Web Developer 2008</code>:<br />
<a href='http://www.viale.com.mx/wp-content/uploads/2008/07/explorer.gif' title='explorer.gif'><img src='http://www.viale.com.mx/wp-content/uploads/2008/07/explorer.gif' alt='explorer.gif' /></a></p>
<p>Ahora abre una ventana de <code>MS-DOS</code>, cámbiate a la carpeta en la que tienes instalado el <code>gacutil.exe</code> y corre el comando:</p>
<p><code>gacutil -i nombredeldll.dll</code></p>
<p>Algo como esto:<br />
<a href='http://www.viale.com.mx/wp-content/uploads/2008/07/msdos.gif' title='Registrando el DLL en el GAC'><img src='http://www.viale.com.mx/wp-content/uploads/2008/07/msdos.gif' alt='Registrando el DLL en el GAC' /></a></p>
<p>Ahora reinicia <code>Visual Web Developer</code>, abre tu aplicación de nueva cuenta y mira como ya funciona el <code>Intellisense</code> y no aparece el error de que tu control no está declarado:<br />
<a href='http://www.viale.com.mx/wp-content/uploads/2008/07/intellisense.gif' title='Intellisense funcionando'><img src='http://www.viale.com.mx/wp-content/uploads/2008/07/intellisense.gif' alt='Intellisense funcionando' /></a></p>
<p>Espero que te sea de utilidad. <img src='http://www.viale.mx/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Actualización</strong><br />
Si necesitaras desinstalar la libreria del <code>GAC</code>, utiliza esta instrucción:<br />
<code>gacutil -u NombreDeLaLibreria</code><br />
No escribas <code>.dll</code><br />
Por ejemplo:<br />
<code>gacutil -u FreeTextBox</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2008/07/07/como-instalar-una-dll-en-el-gac-global-assembly-cache/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cómo evitar que la variable Session.SessionID cambie</title>
		<link>http://www.viale.mx/2008/02/02/como-evitar-que-la-variable-sessionsessionid-cambie/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=como-evitar-que-la-variable-sessionsessionid-cambie</link>
		<comments>http://www.viale.mx/2008/02/02/como-evitar-que-la-variable-sessionsessionid-cambie/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 00:47:56 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[ASP.NET 2.0 / 3.5]]></category>
		<category><![CDATA[IIS]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/2008/02/02/como-evitar-que-la-variable-sessionsessionid-cambie/</guid>
		<description><![CDATA[Si creas una página en ASP.NET y en su evento Load pones lo siguiente: Clic para mostrar texto plano VB.NET: Protected Sub Page_Load&#40;ByVal sender As Object, ByVal e As System.EventArgs&#41; Handles Me.Load &#160; &#160; &#160; &#160; Label1.Text = Session.SessionID &#38; " " &#38; Session&#40;"idsesion"&#41; &#160; &#160; &#160; &#160; Response.Write&#40;Session.SessionID&#41; &#160; &#160; End Sub notarás que [...]]]></description>
			<content:encoded><![CDATA[<p>Si creas una página en ASP.NET y en su evento <code>Load</code> pones lo siguiente:</p>
<div class="igBar"><span id="lvbnet-7"><a href="#" onclick="javascript:showPlainTxt('vbnet-7'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">VB.NET:</span>
<div id="vbnet-7">
<div class="vbnet">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Protected <span style="color: #0600FF;">Sub</span> Page_Load<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> System.<span style="color: #0000FF;">EventArgs</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Handles</span> <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">Load</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; Label1.<span style="color: #0000FF;">Text</span> = Session.<span style="color: #0000FF;">SessionID</span> &amp; <span style="color: #808080;">" "</span> &amp; Session<span style="color: #000000;">&#40;</span><span style="color: #808080;">"idsesion"</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; Response.<span style="color: #0600FF;">Write</span><span style="color: #000000;">&#40;</span>Session.<span style="color: #0000FF;">SessionID</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>notarás que cada vez que oprimes Refresh o Actualizar en tu navegador, la variable de sesión se modifica.  Definitivamente es raro porque uno siempre ha sabido que la variable de sesión debe ser la misma durante todo el tiempo que el visitante permanece visitando la aplicación.</p>
<p>Bueno, la variable de sesión permanece igual siempre y cuando se coloque algún valor en el estado de la sesión.  (yo tampoco entiendo muy bien la razón).</p>
<p>El caso es que para solucionar el problema "de raíz", creé una variable de sesión en el código del archivo <code>Global.asax</code>, justo cuando se crea la sesión (checa la línea 21):</p>
<div class="igBar"><span id="lvbnet-8"><a href="#" onclick="javascript:showPlainTxt('vbnet-8'); return false;">Clic para mostrar texto plano</a></span></div>
<div class="syntax_hilite"><span class="langName">VB.NET:</span>
<div id="vbnet-8">
<div class="vbnet">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;%@ Application Language=<span style="color: #808080;">"VB"</span> %&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;script runat=<span style="color: #808080;">"server"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">Sub</span> Application_Start<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> EventArgs<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">' Code that runs on application startup</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">Sub</span> Application_End<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> EventArgs<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">' Code that runs on application shutdown</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">Sub</span> Application_Error<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> EventArgs<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">' Code that runs when an unhandled error occurs</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">Sub</span> Session_Start<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> EventArgs<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">' Code that runs when a new session is started</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">'La siguiente linea evita que session.sessionid se modifique cada</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">'vez que se oprime Refresh en el navegador</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; Session<span style="color: #000000;">&#40;</span><span style="color: #808080;">"idsesion"</span><span style="color: #000000;">&#41;</span> = Session.<span style="color: #0000FF;">SessionID</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">Sub</span> Session_End<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> EventArgs<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">' Code that runs when a session ends. </span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">' Note: The Session_End event is raised only when the sessionstate mode</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">' is set to InProc in the Web.config file. If session mode is set to StateServer </span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">' or SQLServer, the event is not raised.</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/script&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Esto hace que el estado de la sesión permanezca sin modificarse y ahora el código del <code>Response.Write(Session.SessionID)</code> citado anteriormente regresa siempre el mismo valor. =)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2008/02/02/como-evitar-que-la-variable-sessionsessionid-cambie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Habilitar video FLV en IIS 6 de Windows 2003 Server</title>
		<link>http://www.viale.mx/2007/07/31/habilitar-video-flv-en-iis-6-de-windows-2003-server/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=habilitar-video-flv-en-iis-6-de-windows-2003-server</link>
		<comments>http://www.viale.mx/2007/07/31/habilitar-video-flv-en-iis-6-de-windows-2003-server/#comments</comments>
		<pubDate>Tue, 31 Jul 2007 19:25:37 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[IIS]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/2007/07/31/habilitar-video-flv-en-iis-6-de-windows-2003-server/</guid>
		<description><![CDATA[En algunas configuraciones de IIS 6 de Windows 2003 Server puede ocurrir que no se muestran los videos FLV que añadimos a películas de Flash. Esto puede deberse a que no tenemos configurados el MIME Type para este tipo de archivos. Tan pronto como lo configuremos, los videos se desplegarán correctamente. En la consola de [...]]]></description>
			<content:encoded><![CDATA[<p>En algunas configuraciones de IIS 6 de Windows 2003 Server puede ocurrir que no se muestran los videos FLV que añadimos a películas de Flash.</p>
<p>Esto puede deberse a que no tenemos configurados el <code>MIME Type</code> para este tipo de archivos.  Tan pronto como lo configuremos, los videos se desplegarán correctamente.</p>
<p>En la consola de IIS, en las propiedades del Sitio Web en el que estés colocando tu video, encuentra la pestaña llamada <code>HTTP Headers</code> y agrega el siguiente <code>MIME Type</code>:</p>
<p><strong>Extension:</strong> .flv<br />
<strong>MIME Type:</strong> video/x-flv</p>
<p><a href='http://www.viale.com.mx/wp-content/uploads/2007/07/mimetype.gif' title='MIME Type'><img src='http://www.viale.com.mx/wp-content/uploads/2007/07/mimetype.gif' alt='MIME Type' /></a></p>
<p>¡Listo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2007/07/31/habilitar-video-flv-en-iis-6-de-windows-2003-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Forzar puerto 443 y deshabilitar puerto 80 para uso de un certificado SSL</title>
		<link>http://www.viale.mx/2007/07/23/forzar-puerto-443-y-deshabilitar-puerto-80-para-uso-de-un-certificado-ssl/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=forzar-puerto-443-y-deshabilitar-puerto-80-para-uso-de-un-certificado-ssl</link>
		<comments>http://www.viale.mx/2007/07/23/forzar-puerto-443-y-deshabilitar-puerto-80-para-uso-de-un-certificado-ssl/#comments</comments>
		<pubDate>Tue, 24 Jul 2007 03:23:58 +0000</pubDate>
		<dc:creator>Pablo Viale</dc:creator>
				<category><![CDATA[IIS]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.viale.com.mx/2007/07/23/forzar-puerto-443-y-deshabilitar-puerto-80-para-uso-de-un-certificado-ssl/</guid>
		<description><![CDATA[Cuando compras un Certificado de Seguridad SSL, el sitio web que proteges se accede mediante una dirección como esta: https://seguro.ejemplo.com La "s" indica al navegador que se va a utilizar una conexión segura y ésta se hace por medio del puerto 443, el cual es el default para HTTPS/SSL. Ahora bien, si no configuras nada [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando compras un Certificado de Seguridad SSL, el sitio web que proteges se accede mediante una dirección como esta:</p>
<p>https://seguro.ejemplo.com</p>
<p>La "s" indica al navegador que se va a utilizar una conexión segura y ésta se hace por medio del puerto 443, el cual es el default para HTTPS/SSL.</p>
<p>Ahora bien, si no configuras nada más en tu Sitio Web y alguien teclea esta dirección:</p>
<p>http://seguro.ejemplo.com</p>
<p>notarás que todavía se puede acceder a tu aplicación, pero se está accediendo sin utilizar la seguridad que provee el certificado, lo cual es incorrecto.  Lo más recomendable es indicarle a <code>IIS</code> que force la comunicación segura.</p>
<p>Para esto, abre las propiedades de tu Sitio Web en <code>IIS</code> y en la pestaña <code>Directory Security</code>, bajo el título <code>Secure Communications</code> oprime el botón <code>Edit</code>.</p>
<p>Ahora marca la opción <code>Require Secure Channel (SSL)</code> y marca también la opción <code>Require 128-bit encryption</code> si tu Certificado es de 128 bits.</p>
<p><a href='http://www.viale.com.mx/wp-content/uploads/2007/07/ssl.gif' title='SSL'><img src='http://www.viale.com.mx/wp-content/uploads/2007/07/ssl.gif' alt='SSL' /></a></p>
<p>Listo, ahora si intentas entrar a:</p>
<p>http://seguro.ejemplo.com</p>
<p>verás que el navegador te envía el siguiente error:</p>
<p><code><strong>The page must be viewed over a secure channel</strong><br />
The page you are trying to access is secured with Secure Sockets Layer (SSL).<br />
--------------------------------------------------------------------------------</p>
<p>Please try the following:</p>
<p>Type https:// at the beginning of the address you are attempting to reach and press ENTER.<br />
HTTP Error 403.4 - Forbidden: SSL is required to view this resource.<br />
Internet Information Services (IIS)</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.viale.mx/2007/07/23/forzar-puerto-443-y-deshabilitar-puerto-80-para-uso-de-un-certificado-ssl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

