如何:在开发过程中测试运行状况规则

上次修改时间: 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",然后单击"确定"。

  4. 添加对包含所需规则的程序集的引用。

  5. 为系统和 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

请参阅

任务

如何:创建运行状况规则

如何:创建用于注册运行状况规则的功能

如何:使用解决方案包部署运行状况规则