what side online getitems for sharepoint sharepoint-2010 client-object-model sharepoint-clientobject

side - Error al activar una característica mediante COM en SharePoint 2010



sharepoint sdk client (4)

FeatureDefinitionScope.None

Esto activó una función de ámbito web para mí.

Guid featureId = new Guid("0af5989a-3aea-4519-8ab0-85d91abe39ff"); ClientContext clientContext = new ClientContext("http://mysite:786/"); Site clientSite = clientContext.Site; clientContext.Load(clientSite); FeatureCollection clientSiteFeatures = clientSite.Features; clientContext.Load(clientSiteFeatures); clientContext.ExecuteQuery(); // Activate the feature clientSite.Features.Add(featureId, true, FeatureDefinitionScope.Site); //clientSiteFeatures.Remove(featureId, false); clientContext.ExecuteQuery(); MessageBox.Show("Success");

Cuando estoy ejecutando este código, obtengo la excepción: la función con id "0af5989a-3aea-4519-8ab0-85d91abe39ff" no está instalada en la granja de servidores y no se puede agregar al alcance.

Obtuve esta identificación de función del enlace http://social.technet.microsoft.com/wiki/contents/articles/7695.list-of-sharepoint-2010-features-id-displayname-and-scopes.aspx

Por favor guía.

Saludos, Vikrant Raj Behal


Para activar una característica utilizando el Modelo de objetos del cliente, debe implementarse utilizando una solución de espacio aislado. Las características implementadas a través de Farm Solutions no se pueden activar a través del Modelo de objetos cliente


Según MSDN, el método FeatureCollection.Add tiene la siguiente firma

public Feature Add( Guid featureId, bool force, FeatureDefinitionScope featdefScope )

que está destinado a agregar la característica a la colección de características activadas y devuelve la característica agregada

El parámetro FeatureDefinitionScope se utiliza para especificar el alcance de la característica para una definición de característica. Al mismo tiempo, la documentación dice:

Debe tener el valor de FeatureDefinitionScope.Site o FeatureDefinitionScope.Farm

Básicamente, significa que el método FeatureCollection.Add no acepta el valor de featdefScope para featdefScope y, por lo tanto, no es compatible con la función de activación con ámbito web .

En su caso, parece que está intentando activar la característica con alcance que no es compatible (por ejemplo, Web) a través de CSOM

Cómo verificar el alcance de la característica

$feature = get-spfeature featureId if ($feature -eq $null -or $feature -eq "") { echo "no feature found with id" } else { echo ("feature found. Scope is " + $feature.Scope) }


FeatureDefinitionScope.None

también funciona para activar las funciones de Site Collection.

La forma en que se agrega una función (Sandbox, Farm Solution) no importa.