lunes, 13 de mayo de 2013

Errores 403 Forbidden en SharePoint

Problema:
De manera intermitente y especialmente a reciclar en ApplicationPool o hacer IIS Reset, al acceder a Sharepoint aparecen Errores 403 Forbidden.

Pistas de resolución:
Aunque el usuario tenga los permisos adecuados en la colección de sitios, en ocasiones vuelve a aparecer.
En cambio al identificarse como un administrador con permisos de administración en los frontales, la pagina carga correctamente, incluso para todos los siguientes usuarios, por lo que suponemos que hay un problema de permisos tras la impersonación.

Utilizando la utilidad  "Filemon" o "Process Monitor" de SysInternals, localizamos un acceso denegado en el proceso w3wp.exe al acceder al directorio virtual "/bin" que solo es visible únicamente desde la consola de administración de IIS.

9


Diagnóstico:
El problema es de ASP.NET no de Sharepoint, el proceso usa las credenciales del usuario remoto para acceder, es especialmente en la primera carga (de DLL), cuando intenta acceder a este directorio virtual y es ahí donde se produce el acceso denegado. Posteriormente no intenta acceder es por ello que cuando un administrador se identifica, posteriormente ya no se produce el error.
Un usuario normal no tiene permisos de lectura y ejecución en este directorio virtual.
Nota:El error aparece especialmente si hay paginas con webparts de terceros o custom que usen ensamblados  ya que en primer lugar se buscan en /bin (donde se produce el error) y posteriormente en la GAC.

Solución:
1º Desde la consola de administración de IIS seleccionamos la carpeta /bin del sitio en cuestión que nos esté dando problemas.
2º Con el botón derecho desplegamos el menú contextual y seleccionamos "Edit permissions"
3º En la pestaña de Security y añadimos el grupo de usuarios nombre_servidor\users
4º Verificamos que puede (Listar Carpetas,Leer y Ejecutar)

Después de esto el problema desaparece.
Estos permisos pueden tener implicaciones de seguridad, especialmente si se expone el servidor a internet.

Espero que os resulte de utilidad.



miércoles, 8 de mayo de 2013

Sharepoint List Generator Web Part (ListGenWP)

He creado un web part que permite la creación masiva de listas sharepoint.

Solo hay que insertar el webpart en una pagina de sharepoint, por ejemplo en un directorio destinado a la administración del sitio
Es sencillo editar el XML ya sea introduciéndolo por el editor visual, generarlo o copiándolo de otro sitio

Lo he publicado en codeplex http://listgenwp.codeplex.com/

para que quien lo desee colabore en las funcionalidades que he planificado y bueno que así os ahorre trabajo en la pesada tarea de crear las listas.

De momento solo crea , me gustaría convertirlo en un editor de listas para hacerlo mas cómodo.

Sharepoint List Generator Web Part (ListGenWP)Generador de Listas Sharepoint, con un interfaz mas comodo y un fichero XML de Soporte que puede ser editado cargado Masivamente.
Facilita la creación de Listas con Lookups de forma Rápida.
Utiliza los nombres de Listas en lugar de los GUID por lo que funciona Siempre.
Utiliza un fichero XML que se puede generar y editar manualmente.
Permite Lookups enlazados entre listas.
NO utiliza GUID, utiliza el NOMBRE DE LISTA, para evitar problemas de portabilidad

Instrucciones
*1º Insertar las listas a crear
*2º Activar el Check "Crear" y Guardar
*3º Pulsar el Boton de Crear Listas
(bug:cuando se creen las listas hay que entrar en los campos lookup uno a uno y pulsar guardar para que funcione correctamente.)
Nota:Puede editar el XML de definición de listas ListasDef.xml de forma manual, reemplazarlo, salvarlo incluso automatizarlo.
Tipos de campo Permitidos
text : Campo de tipo texto, hay que especificar el tamaño
number : Campo de tipo Numero
currency: Campo de tipo moneda
lookup: Campo de tipo Lookup, hay que especificar la lista de origen y el campo de texto a mostrar (Hay un bug solventable)
date: Campo de tipo Fecha
datetime: Campo de tipo Fecha y Hora
calculated: Campo calculado Por ejemplo: CODIGO & ") " & DESCRIPCION , para por ejemplo rellenar Combobox
boolean: Campo tipo Si/No
percent: Numero en Porcentaje (%)


Autor: Roberto Marcos Asensio http://www.robertomarcos.com
Blog de Soporte: http://sharepointworks.blogspot.com

wpListSincMapper - Sincronizador de listas sharepoint por ODBC

Hola a todos,

Finalmente he conseguido una versión estable y completamente funcional del sincronizador de listas sharepoint que había prometido.
Lo he hecho con vs.net 2008 , también he configurado un instalador grafico para realizar el deploy mas cómodo.

Este es el sitio del proyecto: http://wplistsincmapper.codeplex.com/

También he creado un manual de instrucciones paso a paso muy cortito pero con capturas de pantalla para hacerlo mas fácil. Esta en ingles

Quería agradecer la ayuda aportada por Guillermo Martin (Goyo) sin el que una buena parte del proyecto se habría demorado mucho y gracias tambien por sus correcciones de mi ingles.

A modo de experimento he creado una cuenta paypal para donaciones por si alguien quiere aportar algo, y así poder irme de tapas con Goyo y mi hermano o tal vez de cena. Bueno no deja de ser un experimento :)


Dejo unas capturas de pantalla para abrir el apetito.




Mi intención es crear un migrador de sitios mucho mas grande en el que este proyecto solo es una pieza, para sincronizar y copiar listas sharepoint de entorno SQL
Muchas gracias por las ideas aportadas, estoy trabajando en algunas de ellas.
Espero que os sea de MUCHA UTILIDAD
Saludos, RobertoMarcos.com

wpListSincMapper Web Part (v 1.0) - ODBC Sharepoint List Synchronizer

Finally I have stabilized a fully functional version of Sharepoint List Synchronizer (which I promised)I have built it using Vs.net, and I have configured a graphical installer to deploy more easy.

I have also created a short step by step instruction manual but with screenshots to make it easier.

I wanted to thank the support provided by Guillermo Martin (Goyo), without which a good part of the project would have been delayed and thanks too for correcting my English.

Codeplex Project: http://wplistsincmapper.codeplex.com/


This project is hosted in CodePlex with the source code included if you want to take a look.

My intention is to create a site migrator much larger than this project(which this one is only one piece).
Thank you very much for the ideas, I'm working on some of them.
I hope this will be of much use. Best Regards, RobertoMarcos.com




Análisis y estadísticas de uso de Sharepoint con Piwik

Vamos a analizar las estadísticas de SharePoint con Piwik ,que es un Clon Open Source de Google Analitics/ Urchin.
La aplicación la podemos bajar en http://es.piwik.org/

Pero si lo que queremos es no complicarnos demasiado aquí os dejo una maquina Virtual Appliance con todo instalado.

Podemos entrar con Putty, pero usar el Webmin que viene de serie instalado en la MV es lo mas rápido.

Ahora solo necesitamos los ficheros de LOG de IIS ( No son los de Sharepoint ) que están en C:\Windows\System32\LogFiles\W3SVC1 
Para localizarlos también podemos seguir estos pasos : http://portal.smartertools.com/KB/a154/where-are-my-iis-log-files-stored.aspx

Los copiamos por FTP, usando Webmin o compartimos la carpeta de logs de IIS mediante NetBios y la montamos usando samba de linux.
Para un análisis puntual con copiarlo usando el gestor de ficheros de Webmin es suficiente.

Dentro de la maquina virtual lanzamos el analizador de Logs indicando la url a analizar.
    $ python /path/to/piwik/misc/log-analytics/import_logs.py  --url=http://analytics.example.com fichero_de_log.log

Y ya tenemos listas las estadísticas para ver el uso que nuestros usuarios dan a la instalación de Sharepoint, por si necesitamos añadir mas frontales y esas cosas.
Esto ayuda bastante a decidir el tamaño de nuestra granja de servidores.

Espero que os sea de utilidad.


miércoles, 12 de septiembre de 2012

Error Access Denied al modificar el web.config programaticamente o al intentar hacer acciones Administrativas

Problema:
En Sharepoint 2010 al tratar de modificar programaticamente el web.config desde un evento de feature o script de acciones Administrativas, usando el SPWebConfigModification sale un error muy descriptivo "Access Denied". Que majo! Que descriptivo!
Probamos con privilegios elevados.... y "Access Denied"


Solución:
Estas accediendo usando LOCALHOST o por la IP? Lo lógico es entrar usando el nombre del servidor o la ruta de acceso alternativa que este registrada.
No obstante si quieres que funcione ..... en Sharepoint 2010 se ha incorporado un interruptor de seguridad a nivel de Servicio para bloquear modificaciones remotas, tendremos que desactivarla....

# Con este script de PowerSell desactivamos la caracteristica de seguridad RemoteAdministratorAccessDenied
# Autor:Roberto Marcos

#Añadimos el snapin de SharePoint PowerShell 
 if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
    Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}
$servicio = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$servicio.RemoteAdministratorAccessDenied = $false
$servicio.Update()


lunes, 10 de septiembre de 2012

Obtener el Strong Name del ensamblado desde Visual Studio

Este truco de Powershell facilita la extracción de Nombre del ensamblado (StrongName) desde Visual Studio.
Funciona en Sharepoint 2010 y Sharepoint 2007

  1. En Visual Studio, ir hasta Tools –>  External Tools.
  2. Hacemos Click en "Add" para agregar una herramienta nueva, y rellenar los siguiente valores:
    1. Title: S&trong Name
    2. Command: Powershell.exe
    3. Arguments: -command "[System.Reflection.AssemblyName]::GetAssemblyName(\"$(TargetPath)\").FullName"
    4. Marcar "Use Output Window"
    5. Desmarcar cualquier otra opción

3. Ya esta, ahora en el proyecto , vamos hasta Tools –> Strong Name, y en la ventana de Salida obtendremos el Nombre de ensamblado

Ejemplo:ProyectoEjemplo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=64a818baff89cafc