功能事件处理程序多次调用Farm级别功能 - sharepoint 2007

时间:2011-01-10 12:09:40

标签: sharepoint deployment sharepoint-2007

我有一个农场作用域功能,它有一个事件处理程序。安装时默认激活该功能。安装完该功能后,我发现FeatureActivated事件已经被多次提升(我总共有三个网络应用程序,不包括中央管理员,并且被称为三次)。

因此,功能部署非常慢(因为我正在为每个Web应用程序进行一些webconfig修改)。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

过去我遇到过类似的问题。我在FeatureReceiver中创建了一个静态标志,指示它是否在之前触发过。

肮脏但有效。

答案 1 :(得分:2)

如果你使它成为一个农场范围的功能,那么第一次安装我们会更容易,当然,但是在你创建另一个Web应用程序的6个月内,这些设置将不会自动应用而且可能会被遗忘。

如果您在功能定义中使用属性ActivateOnDefault =“TRUE”使其成为Web应用程序作用域功能,则在创建这些功能时,将在所有新的Web应用程序中激活该功能。

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

我希望您使用SPWebConfigModification来更改web.config,否则如果您向服务器场添加新服务器,那么也不会应用web.config mod。

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

答案 2 :(得分:1)

您是否需要对所有网络应用程序进行这些web.config更改?包括中央管理员?

我要做的第一个改变是使其成为Web应用程序范围的功能,并有选择地激活所需的Web应用程序。

另外,请不要在安装时默认激活。如果要通过脚本进行部署,请使用单独的命令进行激活。这样,如果瓶颈处于部署或激活状态,您可以轻松调试。