開発中に正常性ルールをテストする
最終更新日: 2009年9月23日
適用対象: SharePoint Foundation 2010
ルールを開発するときは、単純なコンソール アプリケーションを作成すると、そのルールが予測どおりに動作することを検証するのに役立ちます。コンソール アプリケーションでは、ルールの Check() メソッドとその Repair() メソッドを呼び出せるので (ルールにある場合)、さまざまなプロパティの戻り値をテストできます。
ルールの展開後、そのルールはタイマー サービスのコンテキストで実行されます。ルールが展開されるの待って、それからテストしようとすると、コードをステップ実行するために owstimer.exe を操作することが必要になるので、テストの難度が増します。
ルールをテストするためのコンソール アプリケーションを作成するには
管理者として Visual Studio を開きます。それには、[スタート] メニューでこのプログラムを右クリックし、[管理者として実行] を選択します。
新しいコンソール アプリケーション プロジェクトを作成します。[新しいプロジェクト] ダイアログ ボックスで、[Visual C#] または [Visual Basic] を選択し、それから [Windows] を選択し、[コンソール アプリケーション] テンプレートを選択します。
Microsoft.SharePoint.dll への参照を追加します。[ソリューション エクスプローラー] で、プロジェクト名を右クリックし、[参照の追加...] を選択します。[参照の追加] ダイアログ ボックスで、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI\Microsoft.SharePoint.dll を参照します。[Microsoft.SharePoint.dll] を選択し、[OK] をクリックします。
目的のルールが含まれるアセンブリへの参照を追加します。
System および Microsoft.SharePoint.Administration.Health 名前空間について、さらにルールの名前空間についても、using ステートメント (Visual Basic では Imports) を追加します。
既定のコンストラクターを呼び出して、ルールをインスタンス化します。それから、ルールの動作をテストするためのコードを記述します。
例
この例は、トピック「[方法] 正常性ルールを作成する」で例として示してあるルールをテストするコンソール アプリケーションです。
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