Проверка правила работоспособности во время разработки
Дата последнего изменения: 23 сентября 2009 г.
Применимо к: SharePoint Foundation 2010
При разработке правила полезно создать простое консольное приложение для проверки действия правила. Консольное приложение может вызывать метод Check() и Repair() правила, если у него такие есть, а также приложение может проверить возвращаемые значения различных свойств.
После развертывания правила оно выполняется в контексте службы таймера. Если протестировать правило после развертывания, потребуется присоединить его к owstimer.exe, чтобы выполнить код, при этом тестирование усложняется.
Создание консольного приложения для тестирования правила
Откройте Visual Studio как администратор, щелкнув программу правой кнопкой в меню Пуск и выбрав Запуск от имени администратора.
Создайте проект консольного приложения. В диалоговом окне Создать проект выберите Visual C# или Visual Basic, затем выберите Windows и шаблон Console Application.
Добавьте ссылку на Microsoft.SharePoint.dll. В обозревателе решений щелкните правой кнопкой имя проекта и выберите Добавить ссылку. В диалоговом окне Добавить ссылку перейдите к %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI\Microsoft.SharePoint.dll. Выберите Microsoft.SharePoint.dll и нажмите кнопку ОК.
Добавьте ссылку на сборку, которая содержит правило.
Добавьте операторы using (Imports в Visual Basic) для системного пространства имен, Microsoft.SharePoint.Administration.Health и пространства имен правила.
Создайте экземпляр правила, вызвав конструктор по умолчанию. Затем напишите код для тестирования поведения правила.
Пример
В этом примере создается консольное приложение, тестирующее правило, показанное в примере в разделе Практическое руководство. Создание правила исправности.
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
См. также
Задачи
Практическое руководство. Создание правила исправности
Практическое руководство. Создание компонента для регистрации правила работоспособности