2011-01-10 73 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