<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oscar Martin Blog 2.0</title>
	<atom:link href="http://oscarmartin.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://oscarmartin.org</link>
	<description>[ Web 2.0 &#124; Tecnología &#124; Accesibilidad &#124; Seguridad ]</description>
	<lastBuildDate>Fri, 20 Apr 2012 07:00:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Error &#8220;There are no addresses available for this application&#8221; al configurar el Servicio BDC</title>
		<link>http://oscarmartin.org/sharepoint-2010/error-there-are-no-addresses-available-for-this-application-al-configurar-el-servicio-bdc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=error-there-are-no-addresses-available-for-this-application-al-configurar-el-servicio-bdc</link>
		<comments>http://oscarmartin.org/sharepoint-2010/error-there-are-no-addresses-available-for-this-application-al-configurar-el-servicio-bdc/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 07:00:19 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[BCS]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[bcs]]></category>
		<category><![CDATA[bdc]]></category>
		<category><![CDATA[Business Data Connectivity]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[Service Application]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2214</guid>
		<description><![CDATA[Cuando configuras por primera vez la aplicación de servicio BDC (Business Data Connectivity) en un entorno de SharePoint 2010, cuando intentas acceder a sus propiedades o bien por modelo BDC, sistemas externos y tipos de contenido externo, recibes el siguiente error: There are no addresses available for this application Para solucionar este problema, debes de asegurarte [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Cuando configuras por primera vez la aplicación de servicio BDC (Business Data Connectivity) en un entorno de <a href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, cuando intentas acceder a sus propiedades o bien por modelo BDC, sistemas externos y tipos de contenido externo, recibes el siguiente error:</p>
<pre class="wp-code-highlight prettyprint">There are no addresses available for this application</pre>
<p>Para solucionar este problema, debes de asegurarte que el servicio esta arrancado, para ello accedes a:</p>
<p><strong>Central Administration -&gt; System Settings -&gt; Manage services on server</strong></p>
<p>y te aseguras que el servicio <strong>Business Data Connectivity Service</strong> esta arrancado o <span style="color: #339966;">Started</span>.</p>
<p>Una vez los has arrancado solo tienes que reiniciar el servicio IIS (Internet Information Services) a través del comando &#8220;<em><strong>iisreset</strong></em>&#8221; desde una aplicación de consola.</p>
<p>Aquí tienes una captura de pantalla, para que veas que servicio debe estar arrancado:</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://oscarmartin.org/wp-content/uploads/2012/04/BCS_Started.jpg" target="_blank"><img class="aligncenter  wp-image-2216" title="BCS_Started" src="http://oscarmartin.org/wp-content/uploads/2012/04/BCS_Started.jpg" alt="" width="546" height="304" /></a></p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/error-there-are-no-addresses-available-for-this-application-al-configurar-el-servicio-bdc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sincronización completa del Perfil de Usuario en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2010/sincronizacion-completa-del-perfil-de-usuario-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sincronizacion-completa-del-perfil-de-usuario-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2010/sincronizacion-completa-del-perfil-de-usuario-en-sharepoint-2010/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 07:00:49 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[IsSynchronizationRunning]]></category>
		<category><![CDATA[Perfil Usuario]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[StartSynchronization]]></category>
		<category><![CDATA[User Profile]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2203</guid>
		<description><![CDATA[Una de las funcionalidades que podríais necesitar es, a través de código, lanzar una sincronización incremental o completa del servicio de Perfil de Usuario (User Profile) en SharePoint 2010. Por defecto, desde la pagina de administración del Perfil de Usuario en la Administración Central, solo nos permite configurar una sincronización incremental, pero no hay posibilidad de realziar una [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Una de las funcionalidades que podríais necesitar es, a través de código, lanzar una sincronización incremental o completa del servicio de Perfil de Usuario (User Profile) en <a href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>.</p>
<p>Por defecto, desde la pagina de administración del Perfil de Usuario en la Administración Central, solo nos permite configurar una sincronización incremental, pero no hay posibilidad de realziar una completa.</p>
<p>&nbsp;</p>
<p><a href="http://oscarmartin.org/wp-content/uploads/2012/03/UserProfileSync.jpg"><img class="aligncenter size-large wp-image-2204" title="UserProfileSync" src="http://oscarmartin.org/wp-content/uploads/2012/03/UserProfileSync-1024x427.jpg" alt="" width="517" height="215" /></a></p>
<p>Para poder lanzar una sincronización completa, no nos queda mas remedio que hacerlo a través de código, bien vía <a href="http://oscarmartin.org/category/powershell-2/">PowerShell </a>o bien a través de una aplicación/WebPart realizado por nosotros.</p>
<p>A continuación os dejo una función, que os posibilita lanzar una sincronicación a través del método: <a href="http://msdn.microsoft.com/en-us/library/microsoft.office.server.userprofiles.userprofileconfigmanager.startsynchronization.aspx" target="_blank">UserProfileConfigManager.StartSynchronization</a>, el cual está sobrecargado y permite pasarle un valor bool (true/false). Si queremos realizar una sincronicación incremental, no es necesario pasar ningún valor o bien podemos pasarle false como parámetro. Si por el contrario queremos realizar una sincronicación completa, debemos pasarle true como parámetro.</p>
<pre class="wp-code-highlight prettyprint">static void ProfileFullSync(string SP_URL)
{
   try
  {
	using (SPSite site = new SPSite(SP_URL))
	{
	  Write(string.Format(&quot;[SPSite] {0}&quot;, site.Url));
	  //recupera el objeto de contexto
	  SPServiceContext serviceContext = SPServiceContext.GetContext(site.WebApplication.ServiceApplicationProxyGroup, SPSiteSubscriptionIdentifier.Default);
	  //instancia el servicio UserProfile
	  UserProfileConfigManager cpcf = new UserProfileConfigManager(serviceContext);
	  //verifica si se esta ejecutando el proceso de sincronizacion de perfil de usuario
	  if (cpcf.IsSynchronizationRunning())
	  {
		Write(&quot;Ya se esta sincronizando el servicio de User Profile&quot;);
	  }
	  else
	  {
		cpcf.StartSynchronization(true); //lanza una sincronización completa
		Write(&quot;Se ha iniciado la sincronización completa del servicio de User Profile&quot;);
	  }
	}
   }
  catch (Exception ex) { Write(string.Format(&quot;***ERROR*** {0}|{1}&quot;, ex.ToString(), ex.StackTrace)); }
}</pre>
<p>&nbsp;<br />
&nbsp;<br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/sincronizacion-completa-del-perfil-de-usuario-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Identificarte como un usuario diferente en SharePoint</title>
		<link>http://oscarmartin.org/sharepoint-2007/identificarte-como-un-usuario-deferente-en-sharepoint/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=identificarte-como-un-usuario-deferente-en-sharepoint</link>
		<comments>http://oscarmartin.org/sharepoint-2007/identificarte-como-un-usuario-deferente-en-sharepoint/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 07:00:03 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[AccessDenied]]></category>
		<category><![CDATA[ribbon]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Welcome]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2194</guid>
		<description><![CDATA[Cuando tu estas haciendo pruebas de un sitio SharePoint, es necesario probar con diferentes perfiles de usuario, para probar por ejemplo los permisos, tanto a nivel de contenido como de estructura&#8230; para ello, podemos hacer el cambio de usuario, desde la opción de menú superior: &#8220;Sign in as Different User&#8221; que nos provee el control de usuario &#8220;Welcome&#8221;. Ahora el [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Cuando tu estas haciendo pruebas de un sitio SharePoint, es necesario probar con diferentes perfiles de usuario, para probar por ejemplo los permisos, tanto a nivel de contenido como de estructura&#8230; para ello, podemos hacer el cambio de usuario, desde la opción de menú superior: &#8220;Sign in as Different User&#8221; que nos provee el control de usuario &#8220;Welcome&#8221;.</p>
<p>Ahora el problema viene cuando se requiere ocultar el Ribbon, y a consecuencia ocultamos este control de usuario. ¿Como cambiamos de usuario ahora? Se me ocurren varias opciones, pero la mas sencilla es crear un enlace (hyperlink) que nos lleve a esta pagina con el siguiente parámetro:</p>
<pre class="wp-code-highlight prettyprint">/_layouts/AccessDenied.aspx?loginasanotheruser=true</pre>
<p>Esto lo que hará es finalizar la sesión del usuario actual y lanzar la ventana de dialogo, en la que te solicita usuario y contraseña para identificarte como un nuevo usuario&#8230; al ser una pagina que esta dentro de /_layouts/ te aseguras que se podrá acceder desde cualquier colección de sitio.</p>
<p><a href="http://oscarmartin.org/wp-content/uploads/2012/03/Loggin.jpg"><img class="aligncenter size-medium wp-image-2196" title="Loggin" src="http://oscarmartin.org/wp-content/uploads/2012/03/Loggin-300x253.jpg" alt="" width="300" height="253" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2007/identificarte-como-un-usuario-deferente-en-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>De donde viene el valor de &#8220;public site redirect&#8221; en el Perfil de Usuario de SharePoint</title>
		<link>http://oscarmartin.org/sharepoint-2010/de-donde-viene-el-valor-de-public-site-redirect-en-el-perfil-de-usuario-de-sharepoint/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=de-donde-viene-el-valor-de-public-site-redirect-en-el-perfil-de-usuario-de-sharepoint</link>
		<comments>http://oscarmartin.org/sharepoint-2010/de-donde-viene-el-valor-de-public-site-redirect-en-el-perfil-de-usuario-de-sharepoint/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 07:00:24 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[My Site]]></category>
		<category><![CDATA[public site redirect]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[User Profile]]></category>
		<category><![CDATA[WAD]]></category>
		<category><![CDATA[Windows Active Directory]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2176</guid>
		<description><![CDATA[Me ha ocurrido en un cliente, que despues de haber migrado una Intranet de SharePoint 2007 a SharePoint 2010, aun habiendo creado los perfiles de usuario desde cero, el campo &#8220;public site redirect&#8221; del User Profile Service estaba apuntando incorrectamente a la url del My Site del 2007. Este campo  &#8221;public site redirect&#8221; que se [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Me ha ocurrido en un cliente, que despues de haber migrado una Intranet de <a href="http://oscarmartin.org/category/sharepoint-2007/">SharePoint 2007</a> a <a href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, aun habiendo creado los perfiles de usuario desde cero, el campo &#8220;<strong>public site redirect</strong>&#8221; del User Profile Service estaba apuntando incorrectamente a la url del My Site del 2007.</p>
<p>Este campo  &#8221;<strong>public site redirect</strong>&#8221; que se <a href="http://msdn.microsoft.com/en-us/library/hh147513.aspx" target="_blank">encuentra por defecto en las propiedades del Perfil de Usuario</a>, tiene como consecuencia, que aplicaciones de Office como Outlook lo utilizan para mostrar o acceder a información.</p>
<p>Partimos que las urls de los My Site, tanto de 2007 como de 2010, han cambiado en el proceso de migración de la plataforma.</p>
<p>Ejemplo:</p>
<ul>
<li>Url de My Site 2007: http://my.intranet.es/people/oscarmartin</li>
<li>Url de My Site 2010: http://misitio.intranet.com/people/oscarmartin</li>
</ul>
<div>El problema viene cuando por ejemplo, abro el OWA (Outlook Web Access), y al tener configurada esta propiedad, me aparece una nueva pestaña llamada &#8220;<em>Mi Sitio</em>&#8221; que enlaza con la url: <em>http://my.intranet.es/people/oscarmartin</em>. Esto es incorrecto ya que tras la migracion la url de Mi Sitio ha cambiado por esta otra: <em>http://misitio.intranet.com/people/oscarmartin</em>. En la siguiente imagen se muestra este caso:</div>
<div></div>
<div><a href="http://oscarmartin.org/wp-content/uploads/2012/02/OWAMySite.jpg"><img class="aligncenter size-full wp-image-2182" title="OWAMySite" src="http://oscarmartin.org/wp-content/uploads/2012/02/OWAMySite.jpg" alt="" width="471" height="134" /></a></div>
<p>&nbsp;</p>
<p>Investigando un poco mas afondo, para saber donde se estaba almacenando la información de este campo, veo que al sincronizar el  User Profile Service con WAD (Windows Active Directory), esta propiedad esta almacenada WAD en el campo &#8220;<strong>Wep Page</strong>&#8220;:</p>
<p>&nbsp;</p>
<p><a href="http://oscarmartin.org/wp-content/uploads/2012/02/WADMySite.jpg"><img class="aligncenter size-full wp-image-2183" title="WADMySite" src="http://oscarmartin.org/wp-content/uploads/2012/02/WADMySite.jpg" alt="" width="419" height="562" /></a><br />
En el caso que quieras cambiar esto puedes hacerlo con un script para modificar esta propiedad en los usuarios deseados o ramas del WAD.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/de-donde-viene-el-valor-de-public-site-redirect-en-el-perfil-de-usuario-de-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script para ver donde se esta usando una caracteristica en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2010/script-para-ver-donde-se-esta-usando-una-caracteristica-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=script-para-ver-donde-se-esta-usando-una-caracteristica-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2010/script-para-ver-donde-se-esta-usando-una-caracteristica-en-sharepoint-2010/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 07:00:53 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Caracteristica]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[GetFeatureUsageById]]></category>
		<category><![CDATA[GetFeatureUsageByName]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2169</guid>
		<description><![CDATA[Es posible que en algun momento dado neceistes saber, donde se esta utilizando una caracteristica dentro de SharePoint 2010, ya que cuando tienes multiples Web Application con muchas colecciones de sitios, es complicado controlarlo y mas aun, si existen varios administradores de sitio, que pueden activar/descativar caracteristicas (Features) a su gusto&#8230; Si se te ha [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1911" title="powershell" src="http://oscarmartin.org/wp-content/uploads/2011/12/powershell.png" alt="" width="125" height="125" />Es posible que en algun momento dado neceistes saber, donde se esta utilizando una caracteristica dentro de <a href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, ya que cuando tienes multiples Web Application con muchas colecciones de sitios, es complicado controlarlo y mas aun, si existen varios administradores de sitio, que pueden activar/descativar caracteristicas (Features) a su gusto&#8230;</p>
<p>Si se te ha planteado un situacion similar y quieres disponer de un listado de todos los sitios, donde se esta haciendo uso de una caracteristicas (Features) concreta, puedes usar el siguiente script de <a href="http://oscarmartin.org/category/powershell-2/">PowerShell</a>:</p>
<pre class="wp-code-highlight prettyprint">#====================================================================================
[System.Reflection.Assembly]::LoadWithPartialName(&quot;Microsoft.SharePoint&quot;) &amp;gt; $null
[System.Reflection.Assembly]::LoadWithPartialName(&quot;Microsoft.SharePoint.Administration&quot;) &amp;gt; $null
[System.Reflection.Assembly]::LoadWithPartialName(&quot;System.Collections.Generic&quot;) &amp;gt; $null
#====================================================================================
$ContentService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService;
$Farm = [Microsoft.SharePoint.Administration.SPFarm]::Farm.Local;
#====================================================================================
function GetFeatureUsageById([string]$FeatureId)
{
	$FeatureGuid = New-Object System.Guid($FeatureId)
	$FeatureDef=$ContentService.Farm.FeatureDefinitions[$FeatureGuid]
	if($FeatureDef -eq $null)
	{
		Write-Host &quot;WARNING: Característica invalida o desconocida&quot;
		return;
	}
	Write-Host &quot;Ambito de la característica: &quot; $FeatureDef.Scope
	if($FeatureDef.Scope -eq [Microsoft.SharePoint.SPFeatureScope]::Farm)
	{
		Write-Host &quot;WARNING: Característica de granaja no soportada&quot;
		return;
	}
	[Microsoft.SharePoint.Administration.SPWebApplicationCollection] $Applications = $ContentService.WebApplications
	foreach($App in $Applications)
	{
		if($FeatureDef.Scope -ne [Microsoft.SharePoint.SPFeatureScope]::WebApplication)
		{
			foreach($TopLevel in $App.Sites)
			{
				if($FeatureDef.Scope -ne [Microsoft.SharePoint.SPFeatureScope]::Site)
				{
					[Microsoft.SharePoint.SPWebCollection] $AllWebs = $TopLevel.AllWebs
					foreach($Web in $AllWebs)
					{
						  $Feature = $Web.Features[$FeatureId];
						  if($Feature -ne $null)
						  {
								Write-Host $Feature.DisplayName &quot; usado en el sitio: &quot; $Web.Url
						  }
						  $Web.Dispose();
					}
				}
				else
				{
					if($TopLevel.Features[$FeatureId] -ne $null)
					{
						Write-Host &quot;Usado por la Coleccion de Sitio: &quot; $TopLevel.Url
					}
				}
			$TopLevel.Dispose();
			}
		}
		else
		{
			if($App.Features[$FeatureId] -ne $null)
			{
			  Write-Host &quot;Usado por la Aplicacion Web: &quot;,$App.Name
			}
		}
	}
}
#====================================================================================
function GetFeatureUsageByName([string]$FeatureName)
{
	$FeatureDef=$ContentService.Farm.FeatureDefinitions[$FeatureName]
	if($FeatureDef -eq $null)
	{
	   Write-Host &quot;WARNING: Característica invalida o desconocida&quot;
	   return
	}
	$FeatureId=$FeatureDef.Id
	GetFeatureUsageById $FeatureId
}
#====================================================================================
#Llamada a la funcion que devuelve la informacion de la caracteristica
#GetFeatureUsageById &quot;8c0cd022-afa0-4f1b-9bbe-4f128c0cf4b3&quot;
#GetFeatureUsageByName &quot;Document Rating Moderators&quot;</pre>
<p>La llamada a este script puedes hacerla de dos forma diferentes:</p>
<ul>
<li>Si dispones del GUID puede llamar al metodo: GetFeatureUsageById &#8220;8c0cd022-afa0-4f1b-9bbe-4f128c0cf4b3&#8243;</li>
<li>Por el contrario si sabes el nombre de la caracteristica puedes usar este otro metodo: GetFeatureUsageByName &#8220;Document Rating Moderators&#8221;</li>
</ul>
<p>En el script las llamadas a estos dos metodos estan comentados a modo de ejemplo.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/script-para-ver-donde-se-esta-usando-una-caracteristica-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error tras reinstalar el servicio User Profile en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2010/error-tras-reinstalar-el-servicio-user-profile-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=error-tras-reinstalar-el-servicio-user-profile-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2010/error-tras-reinstalar-el-servicio-user-profile-en-sharepoint-2010/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 07:00:05 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[My Site]]></category>
		<category><![CDATA[Service connections]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[User Profile Service]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2158</guid>
		<description><![CDATA[Este es un error que me he encontrado tras la reinstalación del servicio de Perfil de Usuario en un entorno &#8220;tocado&#8221;&#8230; Cuando accedo al My Site, recibo este mensaje de error capturado en ULS: Exception occurred loading user profile (/default.aspx): Microsoft.Office.Server.UserProfiles.UserProfileApplicationNotAvailableException: No User Profile Application available to service the request. Contact your farm administrator. at Microsoft.Office.Server.Administration.UserProfileApplicationProxy.GetRawPartitionID(SPServiceContext [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Este es un error que me he encontrado tras la reinstalación del servicio de Perfil de Usuario en un entorno &#8220;tocado&#8221;&#8230; Cuando accedo al My Site, recibo este mensaje de error capturado en ULS:</p>
<pre class="wp-code-highlight prettyprint">Exception occurred loading user profile (/default.aspx): Microsoft.Office.Server.UserProfiles.UserProfileApplicationNotAvailableException: No User Profile Application available to
service the request. Contact your farm administrator.
 at Microsoft.Office.Server.Administration.UserProfileApplicationProxy.GetRawPartitionID(SPServiceContext serviceContext)
 at Microsoft.SharePoint.Portal.WebControls.ProfilePropertyLoader.get_CurrentPartitionId()
 at Microsoft.SharePoint.Portal.WebControls.ProfilePropertyLoader.OnInit(EventArgs e).</pre>
<p>Después de dar alguna que otra vuelta, veo en el <a href="http://david-martos.blogspot.com/2010/01/exception-instantiating.html" target="_blank">Blog de David Martos</a> un caso similar al mio&#8230; investigando veo que me ha ocurrido lo mismo, así que para solucionarlo, solo tengo que hacer lo siguiente:</p>
<p>1) Me voy a la &#8220;Central Administration &gt; Manage web applications&#8221;  y selecciono la aplicación de My Site (o la que necesite de este servicio, y este dando error).</p>
<p><img class="aligncenter size-full wp-image-2159" title="ErrorUP01" src="http://oscarmartin.org/wp-content/uploads/2012/02/ErrorUP01.jpg" alt="" width="387" height="321" /></p>
<p>&nbsp;</p>
<p>2) Una vez seleccionada, pincho en &#8220;Service connections&#8221; y aparecerá una ventana similar a esta:</p>
<p><a href="http://oscarmartin.org/wp-content/uploads/2012/02/ErrorUP02.jpg"><img class="aligncenter size-medium wp-image-2160" title="ErrorUP02" src="http://oscarmartin.org/wp-content/uploads/2012/02/ErrorUP02-273x300.jpg" alt="" width="273" height="300" /></a></p>
<p>3) Solo tenemos que marcar el servicio &#8220;User Profile Service&#8221; y problema solucionado <img src='http://oscarmartin.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/error-tras-reinstalar-el-servicio-user-profile-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como usar SPDisposeCheck con SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2010/como-usar-spdisposecheck-con-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-usar-spdisposecheck-con-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2010/como-usar-spdisposecheck-con-sharepoint-2010/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 07:00:55 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[Memory Leak]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SPDisposeCheck]]></category>
		<category><![CDATA[Using]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2146</guid>
		<description><![CDATA[Una buena práctica cuando se desarrolla sobre SharePoint 2010 es el control de la destrucción de objetos no manejados (objetos COM) en memoria (como pueden ser los objetos SPSite y SPWeb). SharePoint mezcla objetos manejados como no manejados, por lo que tenemos que tener muy claro cuales son cada uno de ellos, y como debemos [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Una buena práctica cuando se desarrolla sobre <a href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a> es el control de la destrucción de objetos no manejados (objetos COM) en memoria (como pueden ser los objetos SPSite y SPWeb).</p>
<p>SharePoint mezcla objetos manejados como no manejados, por lo que tenemos que tener muy claro cuales son cada uno de ellos, y como debemos destruirlos después de haberlos usado.</p>
<p>Para tener claro y conocer las buenas practicas indicadas por Microsoft, sobre como eliminar objetos de SharePoint o dejo este enlace: <a href="http://msdn.microsoft.com/en-us/library/aa973248.aspx" target="_blank">Best Practices: Using Disposable Windows SharePoint Services Objects</a>, creo que es un articulo que todo desarrollador debería leer y tener claro.</p>
<p>Para poder llevar a la practica estas instrucciones o reglas, existe una herramienta que nos permite detectar estas posibles fugas de memoria, desde Visual Studio 2008/2010 llamada <a href="http://archive.msdn.microsoft.com/SPDisposeCheck" target="_blank">SPDisposeCheck</a> como un add-in más. Se puede descargar desde aquí: <a href="http://archive.msdn.microsoft.com/SPDisposeCheck">http://archive.msdn.microsoft.com/SPDisposeCheck</a></p>
<p>¿Como podemos usar <a href="http://archive.msdn.microsoft.com/SPDisposeCheck" target="_blank">SPDisposeCheck</a>?</p>
<p>1) Una vez nos hemos descargado la aplicación y hemos instalado en nuestro entorno de desarrollo, paramos a configurarla&#8230; abrimos el Visual Studio 2008/2010, en el menú de herramientas nos vamos a &#8220;Toos&#8221; y ahí veremos un nuevo elemento llamado &#8220;SharePoint Dispose Check&#8221;</p>
<p><img class="aligncenter size-full wp-image-2147" title="SPDisposeCheck01" src="http://oscarmartin.org/wp-content/uploads/2012/02/SPDisposeCheck01.jpg" alt="" width="526" height="136" /></p>
<p>2) Abrimos la herramienta debemos rellenar los campos &#8220;Path to SPDisposeCheck&#8221; que es la ruta donde hemos instalado la herramienta y el campo &#8220;Treat problems as&#8221; yo siempre prefiero &#8220;Warnings&#8221; en vez de &#8220;Errors&#8221;. Luego guardas y ya esta finalizada la configuración.</p>
<p><a href="http://oscarmartin.org/wp-content/uploads/2012/02/SPDisposeCheck02.jpg"><img class="aligncenter size-full wp-image-2148" title="SPDisposeCheck02" src="http://oscarmartin.org/wp-content/uploads/2012/02/SPDisposeCheck02.jpg" alt="" width="616" height="419" /></a></p>
<p>3) Una vez finalizada la configuración, solo queda realizar una prueba (usando un código incorrecto)&#8230; créate una aplicación de consola, añade la referencia a la librería Microsoft.SharePoint y usa el siguiente código:</p>
<pre class="wp-code-highlight prettyprint">SPSite site = new SPSite(&quot;http://server&quot;);
SPWeb web = site.OpenWeb();
String str = web.Title;</pre>
<p>Una vez lo tengamos, solo tenemos que compilar, y ver que el compilador nos muestra dos warnings:</p>
<p><a href="http://oscarmartin.org/wp-content/uploads/2012/02/SPDisposeCheck03.jpg"><img class="aligncenter size-full wp-image-2149" title="SPDisposeCheck03" src="http://oscarmartin.org/wp-content/uploads/2012/02/SPDisposeCheck03.jpg" alt="" width="583" height="202" /></a></p>
<p>4) Si cambiamos nuestro codigo anterior por este otro (utilizando using para la instancia de objetos) veremos como desaparecen las advertencias:</p>
<pre class="wp-code-highlight prettyprint">using (SPSite site = new SPSite(&quot;http://server&quot;))
{
  using (SPWeb web = site.OpenWeb())
  {
	String str = web.Title;
  }
}</pre>
<p>Gracias a herramienta podemos corregir nuestras implementaciones sobre SharePoint <img src='http://oscarmartin.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Otra funcionalidad que os puede venir bien, es la posibilidad de pasar la herramienta <a href="http://archive.msdn.microsoft.com/SPDisposeCheck" target="_blank">SPDisposeCheck</a> directamente a un DLL. Esto os sera muy útil en el caso de tener que comprobar algún &#8221;memory leak&#8221; o perdidas de memoria con librerias de un entorno de Producción, solo hay que ejecutar desde linea de comandos <a href="http://archive.msdn.microsoft.com/SPDisposeCheck" target="_blank">SPDisposeCheck</a>, pasandole como parametro la ruta de la DLL que quieres analizar. Aqui os dejo los parametros que admite por linea de comandos:</p>
<pre class="wp-code-highlight prettyprint">Usage:

  SPDisposeCheck.exe  [options]

Options:

  -?    Display command-line help
  -od   Display only the Sharepoint types that have been disposed e.g. the &quot;Do Not Dispose&quot; violations
  -ond  Display only the Sharepoint types that have not been disposed e.g. the &quot;Dispose&quot; violations
  -xml  Display output as XML</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/como-usar-spdisposecheck-con-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuración del elemento cache en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2007/configuracion-del-elemento-cache-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=configuracion-del-elemento-cache-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2007/configuracion-del-elemento-cache-en-sharepoint-2010/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 07:00:19 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[memoria]]></category>
		<category><![CDATA[percentagePhysicalMemoryUsedLimit]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2138</guid>
		<description><![CDATA[Esta configuracion es valida no solo para aplicaciones SharePoint 2010 / 2007, sino para cualquier aplicación ASP.NET&#8230; En uno de mis proyectos con SharePoint, hemos abusado del objetos en cache y para que el servidor recolector de basura vaya limpiando los objetos que tenemos en la cache a nivel de aplicación Web, se ha tenido que modificar [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Esta configuracion es valida no solo para aplicaciones <a href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a> / <a href="http://oscarmartin.org/category/sharepoint-2007/">2007</a>, sino para cualquier aplicación ASP.NET&#8230; En uno de mis proyectos con SharePoint, hemos abusado del objetos en cache y para que el servidor recolector de basura vaya limpiando los objetos que tenemos en la cache a nivel de aplicación Web, se ha tenido que modificar la configuración del objeto <a href="http://msdn.microsoft.com/es-es/library/ms228248(v=vs.90).aspx" target="_blank">Cache</a>.</p>
<p>Esta configuración puede definirse a nivel de:</p>
<ul>
<li>Machine.config</li>
<li>Web.config del nivel de raíz</li>
<li>Web.config del nivel de aplicaciones</li>
</ul>
<p>La configuración que trae por defecto el Framwork 2.0 es la siguiente:</p>
<pre class="wp-code-highlight prettyprint">
&lt;cache disableMemoryCollection=&quot;false&quot;
  disableExpiration=&quot;false&quot; privateBytesLimit=&quot;0&quot;
  percentagePhysicalMemoryUsedLimit=&quot;90&quot;
  privateBytesPollTime=&quot;00:02:00&quot; /&gt;
</pre>
<p>Lo que se ha modificado es el valor de la propiedad <strong>percentagePhysicalMemoryUsedLimit</strong>, bajándolo al <strong>80%</strong>, lo que hace que la maquina no ocupe tanta memoria con objetos en cache y vaya liberando antes&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2007/configuracion-del-elemento-cache-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script para habilitar CollectSPRequestAllocationCallStacks en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2007/script-para-habilitar-collectsprequestallocationcallstacks-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=script-para-habilitar-collectsprequestallocationcallstacks-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2007/script-para-habilitar-collectsprequestallocationcallstacks-en-sharepoint-2010/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 07:00:59 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[CollectSPRequestAllocationCallStacks]]></category>
		<category><![CDATA[Memory Leak]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SPRequest]]></category>
		<category><![CDATA[ULS Viewer]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2113</guid>
		<description><![CDATA[Una tarea que ha de realizar cualquier desarrollador de SharePoint 2010 es la labor de revisar los logs en los diferentes entornos de los que se cuenta&#8230; Revisando los logs de ULS con la aplicación ULS Viewer (verdaderamente útil), me he encontrado con este mensaje de error relacionado con un memory leak (perdida de memoria): An SPRequest [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1911" title="powershell" src="http://oscarmartin.org/wp-content/uploads/2011/12/powershell.png" alt="" width="125" height="125" />Una tarea que ha de realizar cualquier desarrollador de <a href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a> es la labor de revisar los logs en los diferentes entornos de los que se cuenta&#8230;</p>
<p>Revisando los logs de ULS con la aplicación <a href="http://archive.msdn.microsoft.com/ULSViewer" target="_blank">ULS Viewer</a> (verdaderamente útil), me he encontrado con este mensaje de error relacionado con un memory leak (perdida de memoria):</p>
<pre class="wp-code-highlight prettyprint">An SPRequest object was not disposed before the end of this thread.
To avoid wasting system resources, dispose of this object or its
parent (such as an SPSite or SPWeb) as soon as you are done using it.
This object will now be disposed.  Allocation Id:
{646667A7-73BC-4DDD-B0FB-6EDFC315CCE7}  To determine where this
object was allocated, set
Microsoft.SharePoint.Administration.SPWebService.ContentService.CollectSPRequestAllocationCallStacks = true.</pre>
<p><a href="http://oscarmartin.org/wp-content/uploads/2012/02/ErrorMemoryLeak.png"><img class="aligncenter size-full wp-image-2114" title="ErrorMemoryLeak" src="http://oscarmartin.org/wp-content/uploads/2012/02/ErrorMemoryLeak.png" alt="" width="640" height="118" /></a></p>
<p>Este es un mensaje que no nos da mucha información sobre el objeto que esta generando la perdida de memoria al no ser liberado&#8230; para obtener mas información lo que debemos hacer es ver la pila de llamadas actual.</p>
<p>Para ello y como se especifica en la descripción del error, lo que debemos hacer es activar la propiedad <a href="http://msdn.microsoft.com/en-us/library/ie/microsoft.sharepoint.administration.spwebservice.collectsprequestallocationcallstacks" target="_blank">CollectSPRequestAllocationCallStacks</a>, para ello, lo mas sencillo es usar un script de <a href="http://oscarmartin.org/category/powershell-2/">PowerShell</a>:</p>
<pre class="wp-code-highlight prettyprint">$contentService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
write-host &quot;Actual: &quot; $contentService.CollectSPRequestAllocationCallStacks
$contentService.CollectSPRequestAllocationCallStacks = $true
$contentService.Update()
write-host &quot;Nuevo: &quot; $contentService.CollectSPRequestAllocationCallStacks</pre>
<p>Una vez hayamos realizado el cambio podemos volver a revisar los logs de ULS y ahora comprobaremos que nos muestra toda la información de la pila sobre el objeto que no esta siendo liberado.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2007/script-para-habilitar-collectsprequestallocationcallstacks-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No es posible retirar/eliminar/desplegar una solución Sharepoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2007/no-es-posible-retirareliminardesplegar-una-solucion-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=no-es-posible-retirareliminardesplegar-una-solucion-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2007/no-es-posible-retirareliminardesplegar-una-solucion-sharepoint-2010/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 07:00:14 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[execadmsvcjobs]]></category>
		<category><![CDATA[retract]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Solución]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2103</guid>
		<description><![CDATA[Esto es lo que me ocurrió el día de ayer en uno de mis entornos de SharePoint 2010, al intentar actualizar una versión de una solución (.wsp)&#8230; después de intentar retirar la solución con PowerShell, veo que el proceso se queda indefinidamente en &#8220;Retracting&#8221;. Intento realizar el mismo proceso desde la Administración Central, pero ocurre lo mismo Así que después de un rato esperando&#8230; recuerdo [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1911" title="powershell" src="http://oscarmartin.org/wp-content/uploads/2011/12/powershell.png" alt="" width="125" height="125" />Esto es lo que me ocurrió el día de ayer en uno de mis entornos de <a href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, al intentar actualizar una versión de una solución (.wsp)&#8230; <a href="http://oscarmartin.org/net/desplegar-aplicaciones-con-powershell-en-sharepoint-2010/">después de intentar retirar la solución</a> con <a href="http://oscarmartin.org/category/powershell-2/">PowerShell</a>, veo que el proceso se queda indefinidamente en &#8220;Retracting&#8221;.</p>
<p>Intento realizar el mismo proceso desde la Administración Central, pero ocurre lo mismo <img src='http://oscarmartin.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Así que después de un rato esperando&#8230; recuerdo que en <a href="http://oscarmartin.org/category/sharepoint-2007/">SharePoint 20007</a> había un comando que forzaba la ejecución de todos los trabajos (timer jobs) llamado <a href="http://technet.microsoft.com/es-es/library/cc288149(office.12).aspx" target="_blank">execadmsvcjobs</a>, con lo que desde una consola de <a href="http://oscarmartin.org/category/powershell-2/">PowerShell</a> ejecuto lo siguiente:</p>
<pre class="wp-code-highlight prettyprint">stsadm -o execadmsvcjobs</pre>
<p>Tras la ejecución del comando, veo que SharePoint comienza a ejecutar todos los trabajos que tenia pendiente (entre ellos el &#8220;retract&#8221; de mi solución)&#8230;</p>
<p>Aquí lo dejo para que mi compañero <a href="http://www.raulgilabert.es/blog/" target="_blank">@Raul Gilabert</a> siempre lo tenga como referencia <img src='http://oscarmartin.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Mas información sobre este comando, <a href="http://technet.microsoft.com/es-es/library/cc288149(office.12).aspx" target="_blank">aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2007/no-es-posible-retirareliminardesplegar-una-solucion-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

