Обработчик событий компонента вызывается несколько раз для функции уровня фермы - sharepoint 2007 - PullRequest
2 голосов
/ 10 января 2011

У меня есть область действия фермы, в которой есть обработчик событий. Эта функция активируется по умолчанию при установке. После установки этой функции я обнаружил, что событие FeatureActivation вызывается несколько раз (всего у меня три веб-приложения, исключая централизованного администратора и оно вызывается три раза).

Из-за этого развертывание функции происходит крайне медленно (так как я делаю некоторые модификации webconfig для каждого веб-приложения).

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 10 января 2011

У меня была похожая проблема в прошлом.Я создал статический флаг в FeatureReceiver, который указывает, срабатывал ли он раньше.

Грязно, но эффективно.

2 голосов
/ 11 января 2011

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

Если, тем не менее, вы сделаете его функцией области действия веб-приложения со свойством ActivateOnDefault = "TRUE" в определении функции, эта функция будет активирована во всех новых веб-приложениях при их создании.

http://msdn.microsoft.com/en-us/library/ms436075.aspx

И я надеюсь, что вы используете SPWebConfigModification для внесения изменений в web.config, в противном случае, если вы добавите новые серверы в ферму, то моды web.config также не будут применяться.

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebconfigmodification.aspx

1 голос
/ 10 января 2011

Вам нужны эти изменения web.config для всех веб-приложений? В том числе центральный админ?

Первое изменение, которое я хотел бы сделать, - сделать его областью действия веб-приложения и выборочно активировать необходимое веб-приложение.

Кроме того, не включайте его по умолчанию при установке. Если вы развертываете через скрипт, используйте отдельную команду для активации. Таким образом, вы можете легко отлаживать, если узкое место находится в развертывании или активации.

...