2010-08-29 4 views
1

Я пытаюсь активировать функцию SharePoint с помощью кода. SPWeb.Features.Add (новый GUID («XXXXXX»)SharePoint 2007: активация функции с помощью кода, не вызывающего событие, активированного функцией

Это выше строка записывается в featureinstalled обработчик события, где я читал все сайты, на ферме и активируя функцию на каждом сайте.

Но после активации он не вызывает/запускает обработчик обработчика функции, где у меня есть код для запуска. Может кто-нибудь предложить, как вызвать это событие.

+1

Почему вы не используете свойство ActivateOnDefault в теге Feature в файле feature.xml, а не пытаетесь активировать его из кода в событии FeatureInstalled? –

+0

Спасибо, он решает проблему во время установки функции. Но позвольте сказать, что я разворачиваю (retractsolution) и развертываю снова. Поскольку я не деактивировал эту функцию перед деинсталляцией, она активирует эту функцию по умолчанию, и она не будет активировать функцию активирована (я не буду дезактивировать функцию через stsadm, потому что она принимает URL-адрес, и я не могу указать URL-адрес, как это делается на каждый сайт на ферме также не разрешается использовать powershell). Таким образом, у меня есть аналогичный код в функции, позволяющий отключить функцию на каждом сайте, а некоторый код в функции отключен (такая же проблема снова) – sssreddy

+1

это будет работать -> stsadm -o deactivatefeature -n myfeaturename -allcontenturls IMHO, ваш дизайн - это то, что имеет создала эту проблему. Конструкция, которая согласуется с поддерживаемыми методологиями, не должна создавать такие ситуации Catch-22. –

ответ

0

http://blogs.msdn.com/b/cjohnson/archive/2006/11/01/feature-stapling-in-wss-v3.aspx Или есть требование, Возможно ли ваше создание сайтов?

Также в какой области вы развертываете эту функцию? Если вы используете его в ферме или веб-приложении, он будет активирован/деактивирован на всех ваших сайтах.

+0

Это веб-часть, развернутая как функция. Пользовательская доза не имеет разрешения на создание сайтов/подсайтов. Из-за этой заблокированной модели безопасности пользователь не может активировать функцию (я также рассматриваю, как предоставить только это разрешение конечному пользователю). Поскольку это веб-сайт, он деполируется в веб-области, и я не могу развернуть его в масштабе фермы (как говорит Microsoft). Этот веб-сайт будет доступен для всего сайта на ферме. Для будущих сайтов, которые мы создаем, он будет действовать по умолчанию во время процесса подготовки. – sssreddy

+0

Вам необходимо изменить область вашей функции на сайт Collection (Scope = Site). Когда вы используете STSADM -o deploysolution, вам нужно указать коллекцию сайтов верхнего уровня или -allcontenturls. После его развертывания вы просто переходите на страницу функций «Коллекция сайтов» в корневом каталоге вашего сайта и активируете эту функцию. Он должен появляться повсюду. – Junx

 Смежные вопросы

  • Нет связанных вопросов^_^