SharePoint API で web.config を変更する

投稿者: | 2009年8月28日

SharePoint API には、web.configを変更するためのクラスが用意されています。
このクラスを使うことで、たとえばFeatureのインストール時に自動的にweb.configを変更するということができるようになります。

web.configの変更には、SPWebConfigModificationクラスとSPWebServiceクラスを利用します。
例として、web.config内のappSettingsに値を追加する処理を書いてみます。

1.変更内容をSPWebConfigModificationクラスにセットする。
SPWebConfigModificationクラスは、web.configに加える変更情報を保持するクラスです。
web.configを変更したい場合には、このクラスに変更内容をセットすることになります。







 

各プロパティの詳細はヘルプを見ていただくとして、ここでは簡単に説明します。

Pathプロパティに変更対象となるノードを指定し、Valueプロパティに変更内容を指定します。
Nameプロパティは、この変更を一意に識別するための値です。
Ownerプロパティも、Nameプロパティと合わせて、変更を一意に識別するために使用します。
Typeプロパティは、変更内容に合わせたタイプを指定します。

2.変更を実行する。
SPWebConfigModificationクラスの作成が完了したら、web.configのアップデートをしたいWebアプリケーションで変更を実行します。




SPWebService.ContentServiceプロパティで、変更対象のWebアプリケーションを取得しています。
取得したWebアプリケーションのWebConfigModificationsコレクションに、手順1で作成したSPWebConfigModificationクラスのインスタンスを指定し、Updateメソッドを実行します。
最後にApplyWebConfigModificationsメソッドを実行して、ファーム全体に変更を反映します。

これで変更完了です。