<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Un paseo por las nubes : Tips and Tricks</title><link>http://geeks.ms/blogs/davidjrh/archive/tags/Tips+and+Tricks/default.aspx</link><description>Etiquetas: Tips and Tricks</description><dc:language /><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>“Path too long” when using local storage in an Azure Cloud Service</title><link>http://geeks.ms/blogs/davidjrh/archive/2013/06/18/path-too-long-when-using-local-storage-in-an-azure-cloud-service.aspx</link><pubDate>Tue, 18 Jun 2013 16:29:42 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209688</guid><dc:creator>David Rodríguez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/davidjrh/rsscomments.aspx?PostID=209688</wfw:commentRss><comments>http://geeks.ms/blogs/davidjrh/archive/2013/06/18/path-too-long-when-using-local-storage-in-an-azure-cloud-service.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/image_5F00_12.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:right;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" align="right" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/image_5F00_thumb_5F00_5.png" width="300" height="52" /&gt;&lt;/a&gt;It is insane that in 2013 we still try to workaround the 260 character limit in a file path, more when the conversations are centered on services, scaling and other meta-cloud philosophies. &lt;/p&gt;  &lt;p&gt;But this problem is still here and working with VMs hosted in the cloud is no different, on-premise problems will appear in the same way when online. I would recommend the “&lt;a href="http://blogs.msdn.com/b/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton.aspx" target="_blank"&gt;Long Paths in .NET&lt;/a&gt;” series from Kim Hamilton where this matter is deeply discussed. The post is from more than 6 years ago…and this is not solved yet.&lt;/p&gt;  &lt;p&gt;So let’s talk about the problem I had. When using local storage on an Azure web or worker role, the root location for this storage while running on Azure starts with a path that can “eat” almost the half of the MAX_PATH -note that I’m not referring to the problem when playing on DevFabric in your local environment, whose solution is commented on &lt;a href="http://blogs.msdn.com/b/jnak/archive/2010/01/14/windows-azure-path-too-long.aspx" target="_blank"&gt;this MSDN blog post&lt;/a&gt;. This will be something like:&lt;/p&gt;  &lt;p&gt;C:\Resources\Directory\&amp;lt;RoleDeploymentId&amp;gt;.&amp;lt;RoleName&amp;gt;.&amp;lt;LocalStorageName&amp;gt; &lt;/p&gt;  &lt;p&gt;As example:&lt;/p&gt;  &lt;p&gt;C:\Resources\Directory\5bfa990c7fe730f3a1c7c7b40d249462.MyWebRole.MyLocalStorage&lt;/p&gt;  &lt;p&gt;The problem is that the RoleDeploymentId is 32 char length, and if you want to keep some sanity on your role names and storage names you will use something that has some meaning. In my case, the path was “eating” 108 chars, almost the half of the max path. While creating some recursive folders inside that temp path the “Path too long” error will appear sooner than later. &lt;/p&gt;  &lt;h3&gt;Techniques from the past to solve problems from the past&lt;/h3&gt;  &lt;p&gt;After playing a little bit with &lt;a href="http://en.wikipedia.org/wiki/SUBST" target="_blank"&gt;Subst.exe&lt;/a&gt;, didn’t convince me because I was trying to keep distance from mounting and managing drives between different user sessions. But then &lt;a href="https://twitter.com/cesabreu" target="_blank"&gt;César Abreu&lt;/a&gt; give an interesting idea: &lt;strong&gt;why not use old style DOS format for the paths&lt;/strong&gt;?&lt;/p&gt;  &lt;p&gt;Interesting approach, so after some reading on the &lt;a href="http://technet.microsoft.com/es-es/library/cc753059(v=ws.10).aspx" target="_blank"&gt;Fsutil.exe documentation on TechNet&lt;/a&gt;, I did some tests on a running instance:&lt;/p&gt;  &lt;p&gt;1) Enable the short name behavior for volume C:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/image_5F00_2.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/image_5F00_thumb.png" width="484" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2) Add a short name to the local storage folder&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/image_5F00_6.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/image_5F00_thumb_5F00_2.png" width="484" height="58" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3) Verify&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/image_5F00_10.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/image_5F00_thumb_5F00_4.png" width="244" height="110" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I finally created a simple two line startup task to be executed with elevated privileges and that would give me an &lt;strong&gt;&lt;u&gt;additional 83 characters&lt;/u&gt;&lt;/strong&gt;. &lt;/p&gt;    &lt;div class="csharpcode"&gt;   &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;REM Enable short names on volume C:&lt;/span&gt;
fsutil.exe 8dot3name &lt;span class="kwrd"&gt;set&lt;/span&gt; c: 0

&lt;span class="rem"&gt;REM Add a short name to the local storage folder&lt;/span&gt;
fsutil.exe file setshortname &lt;span class="str"&gt;&amp;quot;C:\Resources\Directory\%RoleDeploymentID%.MyWebRole.MyLocalStorage&amp;quot;&lt;/span&gt; S&lt;/pre&gt;
  &lt;/div&gt;

&lt;div class="csharpcode"&gt;&amp;#160;&lt;/div&gt;



&lt;p&gt;The first line enables the short name behavior for volume C:. I noticed that this is enabled for other volumes on an Azure role, but is not enabled by default on C: drive. The second line simply sets the folder short name as “S”. With this I can use then the path “C:\Resources\Directory\S” instead of the long one, and worked like a charm. Note that you can’t do the same for “Resources” and “Directory” folder names, since they are in use during the role startup, and would give you an error while trying to do the operation. &lt;/p&gt;

&lt;p&gt;Hope this helps!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209688" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/davidjrh/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.ms/blogs/davidjrh/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category></item><item><title>Configurando Web Platform Installer y WebDeploy en un Azure WebRole</title><link>http://geeks.ms/blogs/davidjrh/archive/2012/10/02/configurando-webdeploy-en-un-azure-webrole.aspx</link><pubDate>Tue, 02 Oct 2012 18:13:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:206989</guid><dc:creator>David Rodríguez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/davidjrh/rsscomments.aspx?PostID=206989</wfw:commentRss><comments>http://geeks.ms/blogs/davidjrh/archive/2012/10/02/configurando-webdeploy-en-un-azure-webrole.aspx#comments</comments><description>&lt;p&gt;Despu&amp;eacute;s de pasarme m&amp;aacute;s de tres d&amp;iacute;as intentando resolver una incidencia al configurar&amp;nbsp; WebDeploy en un Azure WebRole &amp;ndash;concretamente a&amp;ntilde;adiendo dicha caracter&amp;iacute;stica al &lt;a href="http://dnnazureaccelerator.codeplex.com/"&gt;DNN Azure Accelerator&lt;/a&gt;-, no me queda m&amp;aacute;s remedio que documentar y compartir la soluci&amp;oacute;n para aliviar el sufrimiento a quien le pueda suceder algo parecido. &lt;/p&gt;
&lt;h3&gt;&amp;iquest;Para qu&amp;eacute; WebDeploy?&lt;/h3&gt;
&lt;p&gt;&lt;a target="_blank" href="http://www.iis.net/downloads/microsoft/web-deploy"&gt;&lt;img height="202" width="240" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/WebDeployVideo_5F00_3.png" align="right" alt="WebDeployVideo" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:right;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" title="WebDeployVideo" /&gt;&lt;/a&gt;Web Deploy simplifica el despliegue de aplicaciones y sitios web en servidores IIS. Se puede usar para sincronizar servidores IIS o migrar a nuevas versiones del mismo &amp;ndash;por ejemplo, migrar de un entorno on-premise a la nube o viceversa. &lt;/p&gt;
&lt;p&gt;Permite realizar operaciones de empaquetado y despliegue de aplicaciones web de una manera sencilla, integr&amp;aacute;ndose perfectamente con&amp;nbsp; herramientas como Visual Studio o &lt;a target="_blank" href="http://www.microsoft.com/web/webmatrix/"&gt;WebMatrix&lt;/a&gt; para ayudar a los desarrolladores en esta tarea. Se pueden empaquetar tanto contenido de las aplicaciones, configuraci&amp;oacute;n, bases de datos y cualquier otro artefacto como entradas en el registro, objetos COM, ensamblados en la GAC etc. pudi&amp;eacute;ndose parametrizar los valores de configuraci&amp;oacute;n seg&amp;uacute;n entorno. Una vez empaquetados estos paquetes se pueden utilizar usando una aplicaci&amp;oacute;n de comandos de Web Deploy o IIS Manager sin requerir privilegios administrativos. &lt;/p&gt;
&lt;p&gt;Con la salida de Web Deploy 3.0, tenemos una serie de interesantes caracter&amp;iacute;sticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Migraci&amp;oacute;n de servidores web desde IIS6 a IIS 7&amp;nbsp;o IIS 8 &lt;/li&gt;
&lt;li&gt;Sincronizaci&amp;oacute;n eficiente de tu granja de servidores &lt;/li&gt;
&lt;li&gt;Integraci&amp;oacute;n con Visual Studio y &lt;a target="_blank" href="http://www.microsoft.com/web/webmatrix/"&gt;WebMatrix&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Integraci&amp;oacute;n con Web Platform Installer para instalar aplicaciones web de la comunidad &lt;/li&gt;
&lt;li&gt;Empaquetado de aplicaciones web, incluyendo las bases de datos asociadas, ACLs, COM, GAC, etc. &lt;/li&gt;
&lt;li&gt;Despliegue de aplicaciones web sin requerir permisos administrativos, pudiendo parametrizar la configuraci&amp;oacute;n en cada entorno, as&amp;iacute; como &lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;integraci&amp;oacute;n con el IIS Web Management Service (WMSVC)&lt;/span&gt;&lt;/strong&gt; para despliegue remoto por usuarios no administradores &lt;/li&gt;
&lt;li&gt;Sincronizaci&amp;oacute;n y migraci&amp;oacute;n de servidores web, sincronizando s&amp;oacute;lo los datos que han sido modificados &lt;/li&gt;
&lt;li&gt;Copia de seguridad autom&amp;aacute;tica de los sitios web antes de realizar ning&amp;uacute;n cambio &lt;/li&gt;
&lt;li&gt;Acceso a trav&amp;eacute;s de IIS Manager, Visual Studio, WebMatrix, l&amp;iacute;nea de comandos, PowerShell Cmdlets y APIs. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&amp;iquest;Por qu&amp;eacute; en el DNN Azure Accelerator?&lt;/h3&gt;
&lt;p&gt;Como os pod&amp;eacute;is imaginar, a&amp;ntilde;adir esta caracter&amp;iacute;stica al &lt;a target="_blank" href="http://dnnazureaccelerator.codeplex.com/"&gt;DNN Azure Accelerator&lt;/a&gt; va a permitir realizar una serie de tareas administrativas no disponibles hasta ahora. Se me vienen a la mente unas cuantas, aunque por nombrar algunas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Posibilidad de migrar la instancia de DNN de un IIS a otro. Esto incluye migrar desde on-premise a Azure &amp;ndash;ya sea Azure WebSites o PaaS-, de Azure WebSites a Azure PaaS &amp;oacute; viceversa, etc. &lt;/li&gt;
&lt;li&gt;Acceder y modificar el contenido del site a trav&amp;eacute;s de &lt;a target="_blank" href="http://www.microsoft.com/web/webmatrix/"&gt;WebMatrix&lt;/a&gt;, &amp;iexcl;sin tener que acceder por RDP a las instancias en Azure ni tener que montar el VHD drive con Azure Connect! &lt;/li&gt;
&lt;li&gt;Instalar actualizaciones de DotNetNuke, simplemente desplegando el paquete de upgrade a trav&amp;eacute;s de WebDeploy y ejecutando el asistente de actualizaci&amp;oacute;n &lt;/li&gt;
&lt;li&gt;Crear y restaurar copias de seguridad de nuestro sitio &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Como v&amp;eacute;is, son unas buenas razones para a&amp;ntilde;adir esta caracter&amp;iacute;stica, que estar&amp;aacute; disponible en la pr&amp;oacute;xima release del asistente de DNN Azure Accelerator &amp;ndash;&lt;a target="_blank" href="http://dnnazureaccelerator.codeplex.com/SourceControl/changeset/view/18482"&gt;el c&amp;oacute;digo ya est&amp;aacute; disponible en CodePlex&lt;/a&gt; por si no quieres esperar al empaquetado. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/WizardStepWebDeploy_5F00_2.png"&gt;&lt;img height="321" width="450" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/WizardStepWebDeploy_5F00_thumb.png" alt="WizardStepWebDeploy" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" title="WizardStepWebDeploy" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&amp;iquest;Tres d&amp;iacute;as para a&amp;ntilde;adir esta caracter&amp;iacute;stica? &lt;/h3&gt;
&lt;p&gt;No s&amp;oacute;lo tres d&amp;iacute;as sino adem&amp;aacute;s unos 50 despliegues para poner en funcionamiento la misma, debido a hab&amp;iacute;a Luna llena en Aries y dos errores muy interesantes. &lt;/p&gt;
&lt;p&gt;Pero antes que nada, echemos un vistazo a c&amp;oacute;mo est&amp;aacute; implementado. Para a&amp;ntilde;adir esta caracter&amp;iacute;stica sin disparar una l&amp;iacute;nea de c&amp;oacute;digo &amp;ndash;sin contar los cambios de interfaz en el asistente de instalaci&amp;oacute;n-, el enfoque fue el siguiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A&amp;ntilde;adir un EndPoint en los web roles para permitir el tr&amp;aacute;fico a trav&amp;eacute;s del puerto 8172 &lt;/li&gt;
&lt;li&gt;Incorporar la &lt;a target="_blank" href="http://www.iis.net/learn/install/web-platform-installer/web-platform-installer-v4-command-line-webpicmdexe-preview-release_1072"&gt;aplicaci&amp;oacute;n de comandos de Web Platform Installer&lt;/a&gt; WebPICMD.exe en una startup task del webrole, para automatizar la instalaci&amp;oacute;n de WebDeploy. Esto permite, adem&amp;aacute;s de no incrementar el tama&amp;ntilde;o del paquete de servicio del Accelerator, instalar del mismo modo cualquier otro paquete disponible y que requiera nuestro despliegue, como MVC3, Silverlight, node.js, etc. &lt;/li&gt;
&lt;li&gt;Habilitar el servicio de administraci&amp;oacute;n remota de IIS en una startup task del webrole &lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Problema n&amp;ordm;1: Web Platform Installer no consigue instalar el paquete de WebDeploy&lt;/h4&gt;
&lt;p&gt;Tras intentar instalar el paquete de WebDeploy con una instrucci&amp;oacute;n como la siguiente, el webrole se quedaba ciclado por un error en la ejecuci&amp;oacute;n de la tarea:&lt;/p&gt;
&lt;div style="overflow:auto;cursor:text;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;text-align:left;margin:20px 0px 10px;line-height:12pt;max-height:200px;width:97.5%;background-color:#f4f4f4;border:silver 1px solid;padding:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="overflow:visible;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;color:black;direction:ltr;text-align:left;line-height:12pt;width:100%;background-color:#f4f4f4;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="overflow:visible;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;color:black;direction:ltr;text-align:left;margin:0em;line-height:12pt;width:100%;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; ~dp0WebPICMD.exe /Install /Products:WDeploy /AcceptEULA&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Despu&amp;eacute;s de a&amp;ntilde;adir los correspondientes logs &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/windowsazure/jj129545.aspx"&gt;siguiendo las buenas pr&amp;aacute;cticas&lt;/a&gt;, el problema se trataba de que al intentar descomprimir los paquetes de instalaci&amp;oacute;n una vez que se han descargado, da un error. Este error es debido a que las tareas elevadas se ejecutan como &amp;ldquo;NT AUTHORITY\SYSTEM&amp;rdquo;, cuya carpeta de perfil de usuario se encuentra bajo el directorio &amp;ldquo;system32&amp;rdquo;. Esto es especial, ya que en m&amp;aacute;quinas de 64bits (como todas las VMs de Windows Azure), los procesos de 64bits ven esta carpeta, pero los procesos de 32bits ven la carpeta &amp;ldquo;SysWOW64). Los paquetes de WebDeploy se descargan en la carpeta &amp;ldquo;system32&amp;rdquo; al ser WebPICMD.exe de 64bits, pero algunas dependencias usan un ejecutable auto-extraible de 32bits, dando origen al error descrito. &lt;/p&gt;
&lt;p&gt;Para solucionar este error, la &amp;uacute;nica referencia en la web es la de nuestro &amp;Aacute;ngel de la Guarda Steve Marx en el post &amp;ldquo;&lt;a target="_blank" href="http://blog.smarx.com/posts/windows-azure-startup-tasks-tips-tricks-and-gotchas"&gt;Windows Azure Startup Tasks Tips and Tricks&lt;/a&gt;&amp;rdquo;, donde se da m&amp;aacute;s detalle del mismo. &lt;/p&gt;
&lt;p&gt;De este modo, la&lt;strong&gt; soluci&amp;oacute;n al problema 1&lt;/strong&gt; es cambiar en la registry la ubicaci&amp;oacute;n de esta carpeta antes de ejecutar la instalaci&amp;oacute;n y dejarla como estaba despu&amp;eacute;s de la misma. Quedar&amp;iacute;a de la siguiente forma:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;font-family:Courier New;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="overflow:auto;cursor:text;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;text-align:left;margin:20px 0px 10px;line-height:12pt;max-height:200px;width:97.5%;background-color:#f4f4f4;border:silver 1px solid;padding:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="overflow:visible;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;color:black;direction:ltr;text-align:left;line-height:12pt;width:100%;background-color:#f4f4f4;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="overflow:visible;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;color:black;direction:ltr;text-align:left;margin:0em;line-height:12pt;width:100%;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; md &lt;span style="color:#006080;"&gt;&amp;quot;%~dp0appdata&amp;quot;&lt;/span&gt; &lt;/pre&gt;

&lt;pre style="overflow:visible;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;color:black;direction:ltr;text-align:left;margin:0em;line-height:12pt;width:100%;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; reg add &lt;span style="color:#006080;"&gt;&amp;quot;hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders&amp;quot;&lt;/span&gt; /v &lt;span style="color:#006080;"&gt;&amp;quot;Local AppData&amp;quot;&lt;/span&gt; /t REG_EXPAND_SZ /d &lt;span style="color:#006080;"&gt;&amp;quot;%~dp0appdata&amp;quot;&lt;/span&gt; /f &lt;/pre&gt;

&lt;pre style="overflow:visible;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;color:black;direction:ltr;text-align:left;margin:0em;line-height:12pt;width:100%;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;%~dp0webpicmd&amp;quot;&lt;/span&gt; /Install /Products:WDeploy /AcceptEula &amp;gt;&amp;gt;log.txt 2&amp;gt;&amp;gt;err.txt &lt;/pre&gt;

&lt;pre style="overflow:visible;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;color:black;direction:ltr;text-align:left;margin:0em;line-height:12pt;width:100%;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; reg add &lt;span style="color:#006080;"&gt;&amp;quot;hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders&amp;quot;&lt;/span&gt;/v &lt;span style="color:#006080;"&gt;&amp;quot;Local AppData&amp;quot;&lt;/span&gt; /t REG_EXPAND_SZ /d %%USERPROFILE%%\AppData\Local /f&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;La segunda tarea de instalar el servicio de administraci&amp;oacute;n remota era muy sencilla, simplemente habilitar esta caracter&amp;iacute;stica en la VM y arrancar el servicio, no sin antes tocar alg&amp;uacute;n par&amp;aacute;metro en el registro de Windows:&lt;/p&gt;
&lt;div style="overflow:auto;cursor:text;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;text-align:left;margin:20px 0px 10px;line-height:12pt;max-height:200px;width:97.5%;background-color:#f4f4f4;border:silver 1px solid;padding:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="overflow:visible;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;color:black;direction:ltr;text-align:left;line-height:12pt;width:100%;background-color:#f4f4f4;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="overflow:visible;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;color:black;direction:ltr;text-align:left;margin:0em;line-height:12pt;width:100%;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; start /w ocsetup IIS-ManagementService  &lt;/pre&gt;

&lt;pre style="overflow:visible;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;color:black;direction:ltr;text-align:left;margin:0em;line-height:12pt;width:100%;background-color:#f4f4f4;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WebManagement\Server /v EnableRemoteManagement /t REG_DWORD /d 1 /f  &lt;/pre&gt;

&lt;pre style="overflow:visible;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;color:black;direction:ltr;text-align:left;margin:0em;line-height:12pt;width:100%;background-color:white;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; net start wmsvc  &lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Problema n&amp;ordm;2: al intentar conectar a trav&amp;eacute;s de WebMatrix desde dentro o fuera de la VM, aparece el error &amp;ldquo;Unable to establish connection&amp;rdquo;&lt;/h4&gt;
&lt;p&gt;Este fue muy &amp;ldquo;gracioso&amp;rdquo;, por el n&amp;uacute;mero de horas que tuve que dedicarle el fin de semana y por los m&amp;aacute;s de otros 30 despliegues m&amp;aacute;s probando otras alternativas. Digo gracioso por cu&amp;aacute;l fue la soluci&amp;oacute;n. &lt;/p&gt;
&lt;p&gt;El s&amp;iacute;ntoma era que una vez que las startup tasks realizaron su trabajo (el puerto 8172 abierto, se instal&amp;oacute; correctamente WebDeploy y estaba habilitado el servicio IIS Remote Management), al intentar conectar a trav&amp;eacute;s de WebMatrix, me aparec&amp;iacute;a el warning de advertencia de que no confiaba en el certificado del servidor &amp;ndash;cosa totalmente correcta-, pero a continuaci&amp;oacute;n me aparec&amp;iacute;a el mensaje &amp;ldquo;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Unable to establish connection&lt;/span&gt;&lt;/strong&gt;&amp;rdquo;:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/UnableToConnect_5F00_2.png"&gt;&lt;img height="315" width="400" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/UnableToConnect_5F00_thumb.png" alt="UnableToConnect" border="0" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" title="UnableToConnect" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;El puerto 8172 abierto, las credenciales correctas, el nombre del sitio correcto &amp;ndash;n&amp;oacute;tese que desde esta release el site en IIS se denomina &amp;ldquo;DotNetNuke&amp;rdquo;-, la URL correcta y nombre de servidor correctos. &amp;iquest;Qu&amp;eacute; fallaba?&lt;/p&gt;
&lt;p&gt;Despu&amp;eacute;s de intentar ver algo en el visor de sucesos remoto, comenzar a utilizar artiller&amp;iacute;a &amp;ndash;PSTools, Fiddler, etc.- nada concluyente. La &amp;uacute;nica informaci&amp;oacute;n diferente era la otorgada por la &lt;a target="_blank" href="http://technet.microsoft.com/es-es/library/dd569106(v=ws.10).aspx"&gt;aplicaci&amp;oacute;n de consola &amp;ldquo;msdeploy.exe&amp;rdquo;,&lt;/a&gt; devolviendo el c&amp;oacute;digo de error &amp;ldquo;ERROR_DESTINATION_NOT_REACHABLE&amp;rdquo; seguido de un precioso &amp;ldquo;404 Not Found&amp;rdquo;. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/DESTINATION_5F00_UNREACHABLE_5F00_2.png"&gt;&lt;img height="156" width="450" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/DESTINATION_5F00_UNREACHABLE_5F00_thumb.png" alt="DESTINATION_UNREACHABLE" border="0" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" title="DESTINATION_UNREACHABLE" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sin m&amp;aacute;s informaci&amp;oacute;n ni nada interesante tras dos d&amp;iacute;as de b&amp;uacute;squeda por foros t&amp;eacute;cnicos, casi da verg&amp;uuml;enza comentar la soluci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;La &lt;strong&gt;soluci&amp;oacute;n al problema 2 &lt;/strong&gt;es simplemente cambiar el orden de las startup tasks, esto es, instalar primero IIS Management Service y a continuaci&amp;oacute;n instalar Web Deploy. Parece que al contrario, Web Deploy no se registra correctamente y hay que reinstalarlo. &lt;/p&gt;
&lt;p&gt;La conclusi&amp;oacute;n mereci&amp;oacute; un tweet:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/BecauseOrderMatters_5F00_2.png"&gt;&lt;img height="71" width="450" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/BecauseOrderMatters_5F00_thumb.png" alt="BecauseOrderMatters" border="0" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" title="BecauseOrderMatters" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;h3&gt;Conclusi&amp;oacute;n&lt;/h3&gt;
&lt;p&gt;Espero que sirva de ayuda, tanto la nueva caracter&amp;iacute;stica de WebDeploy en el DNN Azure Accelerator como las soluciones a los problemas encontrados. En breve estar&amp;aacute; todo empaquetado en una nueva release con muchas novedades aparte de esta.&lt;/p&gt;
&lt;p&gt;Un saludo y happy coding!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=206989" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/davidjrh/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.ms/blogs/davidjrh/archive/tags/DotNetNuke/default.aspx">DotNetNuke</category><category domain="http://geeks.ms/blogs/davidjrh/archive/tags/WebMatrix/default.aspx">WebMatrix</category><category domain="http://geeks.ms/blogs/davidjrh/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category></item><item><title>[Tip] Un huevo de pascua llamado “dnndev.me”</title><link>http://geeks.ms/blogs/davidjrh/archive/2011/12/28/tip-un-huevo-de-pascua-llamado-dnndev-me.aspx</link><pubDate>Wed, 28 Dec 2011 12:41:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:202351</guid><dc:creator>David Rodríguez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/davidjrh/rsscomments.aspx?PostID=202351</wfw:commentRss><comments>http://geeks.ms/blogs/davidjrh/archive/2011/12/28/tip-un-huevo-de-pascua-llamado-dnndev-me.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/dnndev.me_5F00_2.jpg"&gt;&lt;img height="162" width="174" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/dnndev.me_5F00_thumb.jpg" align="right" alt="dnndev.me" border="0" title="dnndev.me" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;Hoy toca compartir una utilidad muy interesante de esas que se encuentran en la red y que nos facilitan la vida a los desarrolladores que trabajamos con entornos web. &lt;/p&gt;
&lt;h3&gt;&amp;iquest;Conoc&amp;iacute;as el dominio &amp;ldquo;dnndev.me&amp;rdquo;?&lt;/h3&gt;
&lt;p&gt;El dominio dnndev.me es un dominio registrado en Internet por nuestro amigo &lt;a target="_blank" href="http://dnngallery.com/blog/id/263/local-virtual-hosts-with-dnndevme"&gt;Ian Robinson&lt;/a&gt; que apunta a la direcci&amp;oacute;n de loopback 127.0.0.1. Y no s&amp;oacute;lo este dominio, sino que cualquier subdominio *.dnndev.me tambi&amp;eacute;n lo hace.&lt;/p&gt;
&lt;p&gt;Para hacer una prueba, abre una consola de comandos y haz un ping a &amp;ldquo;&amp;lt;loquetedelagana&amp;gt;.dnndev.me&amp;rdquo; y comprobar&amp;aacute;s que siempre responde tu direcci&amp;oacute;n local.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/pingDnnDevme_5F00_2.jpg"&gt;&lt;img height="171" width="450" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/pingDnnDevme_5F00_thumb.jpg" alt="pingDnnDevme" border="0" title="pingDnnDevme" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&amp;iquest;Y para qu&amp;eacute; sirve esto?&lt;/h3&gt;
&lt;p&gt;Pues para personas que como yo, que trabajamos en desarrollo con m&amp;aacute;s de 30 sitios web en el IIS, cada uno con un binding distinto, con diferentes versiones, etc. editar el fichero de hosts (c:\windows\system32\drivers\etc\hosts) se vuelve una tarea muy tediosa.&lt;/p&gt;
&lt;p&gt;De esta manera, puedes configurar en tu IIS un binding en el sitio web, por ejemplo, &lt;a href="http://miproyecto.dnndev.me"&gt;http://miproyecto.dnndev.me&lt;/a&gt; en vez de usar &lt;a href="http://localhost/miproyecto"&gt;http://localhost/miproyecto&lt;/a&gt; o editar el fichero de hosts para introducir &lt;a href="http://miproyecto.dev"&gt;http://miproyecto.dev&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/Binding_5F00_2.jpg"&gt;&lt;img height="159" width="450" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/davidjrh/Binding_5F00_thumb.jpg" alt="Binding" border="0" title="Binding" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Gracias a Ian Robinson (&lt;a target="_blank" href="http://dnngallery.com/blog/id/263/local-virtual-hosts-with-dnndevme"&gt;ver post original&lt;/a&gt;) y a &lt;a target="_blank" href="http://www.theaccidentalgeek.com/post/2011/03/11/DotNetNuke-Tips-and-Tricks-24-Local-Virtual-Hosts.aspx"&gt;Joe Brinkman&lt;/a&gt; por su aportaci&amp;oacute;n en esta simple y genial idea.&lt;/p&gt;
&lt;p&gt;P.D. &lt;strong&gt;no&lt;/strong&gt; es una inocentada!&lt;/p&gt;
&lt;p&gt;Happy coding!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=202351" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/davidjrh/archive/tags/Web/default.aspx">Web</category><category domain="http://geeks.ms/blogs/davidjrh/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category></item></channel></rss>