SharePoint 2010 へのファーム ソリューションのインストールと展開

このトピックでは、ファーム ソリューションのインストールの概要について説明します。

最終更新日: 2011年8月3日

適用対象: SharePoint Foundation 2010

この記事の内容
ファーム ソリューションをインストールするための主な手順
ファーム ソリューション ストア
展開手順の詳細
展開ジョブの取り消し
インストールの失敗

Microsoft SharePoint Foundation でのファーム ソリューションのインストールは、開発者がカスタム ファーム ソリューションをパッケージ化し、管理者がそのファーム ソリューションを簡単、安全に、そして一貫した方法で展開できるようにするためのシステムです。インストールとは、具体的にはフロントエンド Web サーバーに対してソリューション パッケージ (.wsp files) のアップロードと展開を行い、コンテンツを展開するプロセスを指します。

インストールは、サーバーの全体管理アプリケーションまたは SharePoint 管理シェルのどちらかを使用して実行できます。これらの作業の実行方法については、Technet を参照してください。

ファーム ソリューションをプログラムによってインストールするには、SPFarm.Solutions プロパティに格納されたコレクションの Add メソッドを使用した後に、SPSolution.Deploy メソッドの呼び出しを使用します。

ファーム ソリューションをインストールするための主な手順

ファーム ソリューションをインストールするには、以下の 2 つまたは 3 つの手順を実行します。

  1. 追加: ソリューション パッケージは、ファーム管理者がファームの構成データベース内にあるファームのソリューション ストアに追加します。この手順は、SharePoint 管理シェル (またはオブジェクト モデル) を使用して行います。サーバーの全体管理では実行できません。

  2. 展開: ソリューション パッケージを展開し、その要素を適切な場所にコピーします。

    この手順もファーム管理者が行う必要があり、サーバーの全体管理、SharePoint 管理シェル、またはオブジェクト モデルを使用して実行できます。次に、要素を展開する例をいくつか示します。ユーザー コントロール ファイル (.ascx) は、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates またはそのサブフォルダーにコピーし、アセンブリは、グローバル アセンブリ キャッシュまたは Web アプリケーションの \bin フォルダーに展開します。ファーム ソリューションにフィーチャーがある場合、この手順でそのフィーチャーを %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES のサブフォルダーにコピーし、フィーチャーの対象範囲に応じてファーム、Web アプリケーション、サイト コレクション、または Web サイトのフィーチャー ギャラリーにインストールします。

    管理者は、ソリューションをソリューション ストアに追加した後ですぐに展開する必要はありません。ソリューションは、展開されていない状態で無期限に格納できます。

  3. フィーチャーのアクティブ化: フィーチャーを使用できるようにするには、フィーチャーをアクティブ化する必要があります。このため、フィーチャーを含んでいるソリューションのインストールでは、3 番目の手順としてアクティブ化が必要になります。フィーチャーには、コンテンツ タイプ、コントロール、カスタム アクション、ユーザー設定フィールド、ファイル、ワークフロー、リスト インスタンス、リスト テンプレート、イベント レシーバー、およびドキュメント コンバーターを入れることができます。ただし、範囲によっては入れることができないものがあります。

注意

SharePoint Foundation では、ファーム ソリューションのインストールおよびアンインストールに関する用語が一貫していません。"追加"、"展開"、および "アクティブ化" は、インストールの 3 つの手順を表す際によく使用されますが、これらの用語は、手順を実行するツールによって異なります。たとえば、2 番目の手順は、サーバーの全体管理では "展開" と呼ばれますが、SharePoint 管理シェルでは "インストール" と呼ばれます。これらの手順を戻す作業を表す用語も同じように一貫していません。よく見られるのが、2 番目の手順を元に戻す操作は "取り消し " (SharePoint 管理シェルでは "アンインストール") と呼ばれ、最初の手順を元に戻す操作は "削除" と呼ばれる点です。なお、フィーチャーにのみ適用される 3 番目の手順については常に "アクティブ化" と呼ばれ、その逆の操作は常に "非アクティブ化" と呼ばれます。

ファーム ソリューション ストア

ファーム ソリューション ストアは、ソリューション パッケージが格納される SharePoint Foundation 構成データベース内のテーブルです。

管理者は、次の 2 つの方法のどちらかを使用して、ファーム ソリューションをファーム ソリューション ストアに追加できます。

  • コマンド ライン: 管理者は SharePoint 管理シェルを使用することで、ファーム ソリューション ストアでソリューション ファイルを追加および削除できます。詳細については、「機能とソリューションのコマンドレット (SharePoint Server 2010)」を参照してください。

  • オブジェクト モデル: ストアにファーム ソリューションを追加するときに、ソリューション ファイルのコンテンツを .xsd ファイルと比較して、このファイルに含まれているファイルが SharePoint Foundation スキーマに準拠していることを検証します。検証に失敗すると、エラー メッセージが返されます。検証に成功すると、ファーム ソリューションを追加する処理が続行されます。

    注意

    マルチサーバー ファームでも、DeployLocal プロパティを使用して 1 台のサーバーにだけソリューションを展開できます。ただし、これは、トラブルシューティング手順として一時的に行うのみとする必要があります。それ以外の場合は、フロントエンド Web サーバーは同じように構成する必要があります。

展開手順の詳細

ファーム ソリューションの展開手順では、タイマー ジョブが作成されます。このタイマー ジョブは、サーバー ファーム内の各 Web サーバーのタイマー サービスによって使用されます。また、タイマー ジョブは、SharePoint Foundation 管理 Web サービスを使用して適切な権限にアクセスし、ソリューション ファイルを各コンピューターに展開します。このため、展開が正常に行われるようにするためには、両方のサービスをすべてのサーバーで実行している必要があります。

最初に、パッケージ マニフェストが解析され、アセンブリ、アプリケーション ページ、JavaScript、およびフィーチャーの一部ではないその他のファイルが検出されます。これらは、マニフェストで指定された場所にコピーされます。フィーチャー内に含まれるすべてのファイルは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES のサブディレクトリであるフィーチャー ディレクトリにコピーされます。ソリューション ファイルが対象のコンピューターにコピーされた後で、すべてのフロントエンド Web サーバーに対して構成のリセットがスケジュール設定されます。リセットの実行後、ファイルが展開され、インターネット インフォメーション サービス (IIS) が再起動されます。ファーム管理者は、このタイミングを指定できます。

最後に、ファーム ソリューションのフィーチャーが登録され、スキーマ ファイルと定義ファイルが構成ストアに保存されます。

ファーム管理者は、ファーム内の一部の Web アプリケーションにだけソリューションを展開することを選択できます。

展開ジョブの取り消し

展開手順の最初の設定段階では、どの展開対象に対しても展開タイマー ジョブがまだ実行されていない場合、展開ジョブを取り消すことができます。この場合、タイマー ジョブが削除されます。

ただし、任意の対象コンピューターに対して展開タイマー ジョブの実行が開始された後では、展開タイマー ジョブを取り消すことはできません。

インストールの失敗

フロントエンド Web サーバーへのインストール中、次の問題が発生する可能性があります。

  • フロントエンド Web サーバーでタイマー サービスが動作していない場合、展開ジョブが停止したままになります。ユーザー インターフェイスの保留中ジョブのページで、このジョブが保留中であり、サービス中でないことが示されます。管理者はタイマー サービスを修正するか、展開ジョブを取り消す必要があります。

  • 特定のコンピューターで SharePoint Foundation 管理サービスが動作していない場合、その段階が失敗したことを示すエラー コードが SPRunningJob オブジェクトに設定され、以降の処理がすべて中止されます。展開の失敗は管理通知に変換され、SharePoint Foundation 管理 Web サービスが動作していないためジョブが失敗したことが管理者に通知されます。

  • 特定のサーバーでソリューション パッケージ (.wsp) の抽出が失敗した場合、この段階が失敗として記録され、処理が停止されます。サーバーの全体管理の [ソリューション管理] ページで、ソリューションの [状態] フィールドに "エラー" と赤色で表示されます。

  • 1 つ以上のファイルがコピーできなかった場合 (たとえば、既存のファイルが読み取り専用として指定されていた場合)、その段階が失敗として記録され、処理が停止されます。

  • 展開段階のコードで例外が発生した場合、例外に関する管理通知が作成され、展開が停止されます。使用されていたジョブ定義は削除されます。

  • 外部的な障害 (たとえば、停電) が発生した場合、最終的な展開は停止されますが、後で再実行できます。

関連項目

概念

ファーム ソリューションをアンインストールして取り消す

ファーム ソリューションをアップグレードする

その他の技術情報

ファーム ソリューション