2011-01-10 15 views
2

私はイベントハンドラを持つファームスコープの機能を持っています。この機能は、インストール時にデフォルトで有効になります。フィーチャーをインストールした後、FeatureActivatedイベントが複数回発生していることがわかりました(中央管理者を除く3つのWebアプリケーションがあり、3回呼び出されています)。機能ファームレベル機能 - sharepoint 2007のために複数回コールされたイベントハンドラ

このため、機能のデプロイメントは非常に遅いです(私は各Webアプリケーションに対していくつかのWebconfigの変更を行っています)。

アイデア?

答えて

2

私は過去に同様の問題がありました。フィーチャーレシーバーに静的フラグを作成しました。これは以前にトリガーされたかどうかを示します。

汚いですが効果的です。

+0

SharePointには多くのミステリー(!)が含まれています。私はこれが今私にとって唯一実行可能な解決策だと思います。 – NLV

+0

SharePointはバグのある製品の中で、謎の中で謎の中に包まれた謎です。無料のMuhimbi SharePoint開発ガイドラインをご覧ください。更新の予定があるにも関わらず、役立つかもしれません。 http://blog.muhimbi.com/2009/05/muhimbis-sharepoint-development.html –

+0

はい、私はすでにそれを持っています。あなたのバージョン管理のガイドラインは本当に私を大いに助けました。 – NLV

1

すべてのWebアプリケーションでこれらのweb.configの変更が必要ですか?中央管理者を含む?

最初に行う変更は、Webアプリケーションスコープ化された機能にし、必要なWebアプリケーションで選択的にアクティブ化することです。

また、インストール時にデフォルトで有効にしないでください。スクリプトを使用してデプロイする場合は、別の起動コマンドを使用します。こうすることで、ボトルネックが展開またはアクティブ化されている場合に簡単にデバッグできます。

+0

私は強制的にすべてのWebアプリケーションに変更をプッシュしてきたようにwebapplciationこの機能をスコープとして、私はこれを行うことはできません。それぞれのWebアプリケーションを選択して手動で機能を有効にすることは望ましくありません。 – NLV

2

ファームスコープの機能を作成した場合、最初のインストールは簡単ですが、別のWebアプリケーションを作成すると6ヶ月で自動的に適用されず、忘れられる可能性があります。

フィーチャ定義でActivateOnDefault = "TRUE"というプロパティを持つWebアプリケーションスコープフィーチャーにすると、そのフィーチャーは作成時に新しいWebアプリケーションすべてでアクティブになります。

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

と私はあなたがしてweb.configファイルの改造は文句を言わないのいずれかを適用すること、ファームに新しいサーバーを追加それ以外の場合は、web.configファイルの変更を行うことがSPWebConfigModificationを使用している願っています。

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

+0

ActivateOnDefaultが 'TRUE'の場合、私の' SPWebConfigModification'機能はすべてのWebアプリケーションのすべてのWeb設定を変更することが分かりました。うわー:-) –