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.SiteoFeatureDefinitionScope.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.