次の方法で共有


開発中に正常性ルールをテストする

最終更新日: 2009年9月23日

適用対象: SharePoint Foundation 2010

ルールを開発するときは、単純なコンソール アプリケーションを作成すると、そのルールが予測どおりに動作することを検証するのに役立ちます。コンソール アプリケーションでは、ルールの Check() メソッドとその Repair() メソッドを呼び出せるので (ルールにある場合)、さまざまなプロパティの戻り値をテストできます。

ルールの展開後、そのルールはタイマー サービスのコンテキストで実行されます。ルールが展開されるの待って、それからテストしようとすると、コードをステップ実行するために owstimer.exe を操作することが必要になるので、テストの難度が増します。

ルールをテストするためのコンソール アプリケーションを作成するには

  1. 管理者として Visual Studio を開きます。それには、[スタート] メニューでこのプログラムを右クリックし、[管理者として実行] を選択します。

  2. 新しいコンソール アプリケーション プロジェクトを作成します。[新しいプロジェクト] ダイアログ ボックスで、[Visual C#] または [Visual Basic] を選択し、それから [Windows] を選択し、[コンソール アプリケーション] テンプレートを選択します。

  3. Microsoft.SharePoint.dll への参照を追加します。[ソリューション エクスプローラー] で、プロジェクト名を右クリックし、[参照の追加...] を選択します。[参照の追加] ダイアログ ボックスで、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI\Microsoft.SharePoint.dll を参照します。[Microsoft.SharePoint.dll] を選択し、[OK] をクリックします。

  4. 目的のルールが含まれるアセンブリへの参照を追加します。

  5. System および Microsoft.SharePoint.Administration.Health 名前空間について、さらにルールの名前空間についても、using ステートメント (Visual Basic では Imports) を追加します。

  6. 既定のコンストラクターを呼び出して、ルールをインスタンス化します。それから、ルールの動作をテストするためのコードを記述します。

この例は、トピック「[方法] 正常性ルールを作成する」で例として示してあるルールをテストするコンソール アプリケーションです。

using System;
using Microsoft.SharePoint.Administration.Health;
using Samples.HealthRules;

namespace RuleTester
{
    class Program
    {
        static void Main(string[] args)
        {
            DiskDriveAlmostFull rule = new DiskDriveAlmostFull();
            SPHealthCheckStatus status = rule.Check();

            Console.WriteLine(status.ToString());
            if (status == SPHealthCheckStatus.Failed)
                Console.WriteLine(rule.Explanation);

            Console.Write("\nPress ENTER to continue...");
            Console.Read();
        }
    }
}
Imports System
Imports Microsoft.SharePoint.Administration.Health
Imports Samples.HealthRules

Module Module1

    Sub Main()
        Dim rule As DiskDriveAlmostFull = New DiskDriveAlmostFull()
        Dim status As SPHealthCheckStatus = rule.Check()

        Console.WriteLine(status.ToString())
        If status = SPHealthCheckStatus.Failed Then
            Console.WriteLine(rule.Explanation)
        End If

        Console.Write(vbCrLf + "Press ENTER to continue...")
        Console.Read()
    End Sub

End Module

関連項目

タスク

[方法] 正常性ルールを作成する

[方法] 正常性ルールを登録するフィーチャーを作成する

[方法] ソリューション パッケージで正常性ルールを展開する