viernes, 13 de septiembre de 2013

Problema con los bordes de un mapa generado por D3.geo en Internet Explorer 10

Enunciado

En Internet Explorer 10, los paths de un mapa generado con D3js se extiende mas allá de los bordes definidos en los elementos hight y width del elemento SVG contenedor.

Esto no ocurre en Chrome o Firefox.

Solución

Incluye el área SVG dentro de un elemento DIV dimensionado como el SVG y aplica al DIV la propiedad CSS overflow: hidden


Internet Explorer 10 y d3.tsv

Enunciado:

Al leer un archivo tsv mediante d3js no se distribuyen los campos como era de esperar.
El problema aparece en IE10 pero no en Chrome o Firefox.

Solución:

El archivo tsv estaba generado desde Access y  por defecto codificado en Ansi.
La solución es generar en UTF8

Comentario:

Lo sorprendente para mí fue que IE10 causara el problema y no los otros navegadores.

Publicar umbraco en IIS7.5 (permisos)

Sintomas:

En la versión de producción de un sitio Umbraco instalado manualmente o publicado desde Visual Studio se producen errores del tipo
La sección de configuración 'System.web.extensions' no se puede leer porque falta una declaración de sección.

Contexto:

 IIS 7.5 y umbraco 6.1.5

Causa:

La causa del error son los permisos de acceso a las carpetas y archivos.

Enunciado del problema

¿Qué permisos se deben dar en la carpeta windows del sitio Web Umbraco? Y mas concretamente a quién?

Solución

¿A quién?

Los permisos se deben dar al usuario del pool de aplicaciones usado por Umbraco. Particularmente yo uso un pool que se llama umbraco y que se ejecuta en el framework 4.0 con canalización integrada.
Para hacer referencia al usuario del Pools se debe utilizar: "IIS APPPOOL\umbraco"
Si lo haces por GUI recuerda que este usuario es la máquina no el dominio.

¿A qué carpetas?

En la documentación actual esta configuración está un poco indeterminado:
In order for Umbraco to have enough permissions to write files to disk, you should give the IIS_IUSRS user modify permissions in the folder in which you've unzipped your Umbraco files.
While giving broad permissions is usually fine for development environments, you may want to restrict permissions further on a public facing server. In that case, at least the App_Data folder needs modify permissons for either the IIS_IUSRS group or the specific user that is linked to the application pool that you're using (assumes that you will not do live editing or installing on the server).
Mas o menos sugieren que si el sitio no va evolucionar (trabajar con CSS, vistas,...etc)  debería bastar con darle permisos de escritura al app_data.
Una solución alternativa es dar permisos en todos los archivos y carpetas, pero para un sitio en producción....

Solución

Yo utilizo este batch que derivé de una articulo de la wiki anterior y parece funcionar:
e:
cd E:\Inetpub\Aplicaciones\PUBLICO.NET\EUP
icacls app_code /grant "IIS APPPOOL\umbraco":(OI)(CI)RX
icacls app_browsers /grant "IIS APPPOOL\umbraco":(OI)(CI)RX
icacls app_data /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls bin /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls config /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls css /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls data /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls macroscripts /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls masterpages /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls media /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls python /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls scripts /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls umbraco /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls usercontrols /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls views /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls xslt /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls web.config /grant "IIS APPPOOL\umbraco":(OI)(CI)M
icacls web.config /grant "Servicio de Red":M
icacls robots.txt /grant "IIS APPPOOL\umbraco":M
Pause
Donde E:\Inetpub\Aplicaciones\PUBLICO.NET\EUP es el path a la carpeta que aloja el sitio umbraco duplicado

Notas:


  • Hay archivos como robots.txt que no existen y daran error, pero no importa.
  • Es posible que falten carpetas utilizadas por extensiones.