viernes, 13 de septiembre de 2013

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.


No hay comentarios: