我有一个农场作用域功能,它有一个事件处理程序。安装时默认激活该功能。安装完该功能后,我发现FeatureActivated事件已经被多次提升(我总共有三个网络应用程序,不包括中央管理员,并且被称为三次)。
因此,功能部署非常慢(因为我正在为每个Web应用程序进行一些webconfig修改)。
有什么想法吗?
答案 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。
答案 2 :(得分:1)
您是否需要对所有网络应用程序进行这些web.config更改?包括中央管理员?
我要做的第一个改变是使其成为Web应用程序范围的功能,并有选择地激活所需的Web应用程序。
另外,请不要在安装时默认激活。如果要通过脚本进行部署,请使用单独的命令进行激活。这样,如果瓶颈处于部署或激活状态,您可以轻松调试。