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