SharePoint 2010: Como leer y modificar el archivo web.config de una aplicación web!

En ciertas ocasiones, tendremos que recurrir a modificar el archivo web.config de una aplicación web para por ejemplo añadir cadenas de conexión, nuevas entradas en los Safe Controls, etc. Estas modificaciones se pueden realizar de forma manual o bien de forma automática mediante un Feature Event Receiver por ejemplo:

  • En VS 2010, creamos un proyecto de tipo “Empty SharePoint Project”. Elegimos como tipo de despliegue “Deploy as farm solution”.
  • Añadimos una Feature al proyecto.
  • A través del diseñador de características, configuramos la Feature de forma adecuada.

image

  • Añadimos un Event Receiver para la Feature. Añadimos directivas using a Microsoft.SharePoint.Administration y System.Collections.ObjectModel.
  • Codificamos el método FeatureActivated() de la siguiente forma:
   1: SPWebApplication webApplication = (SPWebApplication)properties.Feature.Parent;   

   2: SPWebConfigModification myModification = 

   3:     new SPWebConfigModification();

   4: myModification.Path = 

   5:     "configuration/SharePoint/SafeControls";

   6: myModification.Name = 

   7:     "SafeControl[@Assembly='MyCustomAssembly'][@Namespace='MyCustomNamespace'][@TypeName='*'][@Safe='True']";

   8: myModification.Sequence = 0;

   9: myModification.Owner = 

  10:     "contoso\Administrator";

  11: myModification.Type = 

  12:     SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;

  13: myModification.Value = 

  14:     "<SafeControl Assembly='MyCustomAssembly' Namespace='MyCustomNamespace' TypeName='*' Safe='True' />";            

  15:  

  16: webApplication.WebConfigModifications.Add(myModification);

  17: webApplication.WebService.ApplyWebConfigModifications();

  18: webApplication.Update();

  • Como vemos, para modificar el archivo WebConfig nos creamos una instancia de SPWebConfigModification que a través de sus propiedades nos permite indicar dónde queremos añadir las modificaciones del archivo web.config (Path), las modificaciones a añadir (Name) y el valor (Value), el orden (Sequence), etc.
  • Una vez configurada la modificación, no tenemos más que añadirla al correspondiente objeto SPWebApplication que hemos instanciado a partir de la feature y listo.
  • Hacemos el despliegue de la Feature y comprobamos que efectivamente el archivo web.config se ha modificado:

image

Por supuesto, para dejarlo todo bien hecho deberíamos añadir a la feature el método FeatureDeactivating() habría que hacer la correspondiente limpieza.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Un comentario en “SharePoint 2010: Como leer y modificar el archivo web.config de una aplicación web!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *