2011-01-10 36 views
2

我有一个农场范围的功能,它有一个事件处理程序。该功能默认在安装时激活。在我安装了这个功能之后,我发现FeatureActivated事件已经被提升了很多次(我除了中央管理员外共有三个Web应用程序,它被称为三次)。功能事件处理程序调用多次农场级别功能 - sharepoint 2007

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

任何想法?

回答

2

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

脏,但有效。

+0

SharePoint包装了大量的奥秘(!)。我想现在对我来说这是唯一可行的解​​决方案。 – NLV 2011-01-10 13:08:10

+0

SharePoint是一个谜语,包裹在一个谜题中,里面有一个谜题,里面有一个马车产品。看看免费的Muhimbi SharePoint开发指南,即使它有更新,也可能有所帮助。 http://blog.muhimbi.com/2009/05/muhimbis-sharepoint-development.html – 2011-01-10 13:26:08

1

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

我要做的第一个更改是使其成为Web应用程序作用域功能并有选择地在所需的Web应用程序上激活。

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

+0

,因为我已经到强制推动改变所有的Web应用程序,我不能让这个作为webapplciation范围的功能。不希望去选择每个Web应用程序并手动激活该功能。 – NLV 2011-01-10 13:14:30

2

如果你让一个农场范围的功能,那么首先安装,我们会更容易,肯定,但随后6个月的时候再创建一个Web应用程序,这些设置不会被自动应用,并有可能被遗忘。

如果您在功能定义中将其设置为属性ActivateOnDefault =“TRUE”的Web应用程序范围功能,那么该功能将在所有新Web应用程序创建时激活。

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

,我希望你正在使用SPWebConfigModification使web.config中的变化,否则如果你添加新的服务器农场,然后在web.config MODS不会被任何应用。

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