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