Поделиться через


Извлечение отслеживаемых переменных из хранилища данных наблюдения Windows Server AppFabric

В этом примере показано, как использовать платформу Entity Framework для извлечения и десериализации отслеживаемых переменных рабочих процессов из базы данных наблюдения AppFabric. Здесь также описан ряд используемых для этого открытых представлений, имеющихся в базе данных наблюдения. Этот пример будет работать с любым приложением. Рекомендуется использовать Общий пример приложения Windows Server AppFabric, который был создан для использования с примерами AppFabric. Это приложение находится в папке <примеры>\SampleApplication\OrderApplication, где <примеры> — это путь установки примеров AppFabric.

Примечание

Примеры предназначены только для образовательных целей. Они не предназначены для использования в рабочей среде и не тестировались в ней. Корпорация Майкрософт не предоставляет техническую поддержку для этих примеров.

Предварительные условия

  • Необходима установленная платформа Windows Server AppFabric с настроенным наблюдением.

  • По меньшей мере одна служба WCF или WF, размещенная в AppFabric.

Примечание

Этот пример более полно демонстрирует возможности наблюдения, если для службы настроена отслеживание переменной сложного типа.

При десериализации отслеживаемых переменных из пользовательской сборки следует добавить сборку (например, образец приложения AppFabric) в качестве ссылки на этот проект, чтобы соответствующие объекты можно было десериализовать.

Файлы примеров

В этот пример входят следующие файлы:

  • Структура решения и вспомогательные файлы кода для VS 2010

  • TrackedWFVariable.cs

  • Program.cs

Установка и запуск этого примера

  1. Убедитесь, что переменные отслеживаются и сохраняются в базе данных наблюдения. Это можно сделать, проверив представление WFEventProperties и убедившись, что в нем есть строки.

  2. Откройте решение Visual Studio, входящее в состав примера.

    Важно!

    Убедитесь, что у текущей учетной записи имеется доступ на чтение из базы данных наблюдения AppFabric.

  3. Измените значение параметра Database в файле Program.cs так, чтобы он указывал на нужную базу данных.

  4. Измените значение, передаваемое в конструктор AppFabricMonitoringEntities в файле Program.cs. По умолчанию он указывает на экземпляр экспресс-выпуска SQL Server. Для упрощения работы в начале файла указано имя экземпляра SQL Server Standard.

  5. Постройте и запустите пример, нажав клавишу F5.

Описание примера

Program.cs использует платформу Entity Framework для запроса последних событий рабочих процессов в базе данных. Класс TrackedWFVariable использует контекст данных Entity Framework для подключения и извлечения всех строк WFEventProperty, связанных с последними событиями. Затем свойства десериализуются в исходные типы .NET. Конкретный процесс будет зависеть от типа десериализуемого объекта.

Следующие типы хранятся в столбце Value представления WFEventProperties в виде простых строк:

  • System.String

  • System.Char

  • System.Boolean

  • System.Int32

  • System.Int16

  • System.Int64

  • System.UInt32

  • System.UInt16

  • System.UInt64

  • System.Single

  • System.Double

  • System.Guid

  • System.DateTimeOffset

  • System.DateTime

Эти типы можно десериализовывать путем вызова статических методов Parse, определенных в них, передавая строковые значения в качестве параметров. Все прочие типы хранятся в представлении WFEventProperties в столбце ValueBlob и должны десериализовываться с помощью класса System.Runtime.Serialization.NetDataContractSerializer. Для этого необходимо загрузить сборку, в которой объявляется десериализуемый тип. Объекты хранятся в базе данных таким образом для того, чтобы перечисленные выше простые типы могли сразу распознаваться клиентами SQL.

Удаление примера

Пример не оставляет после себя никаких объектов. При необходимости файлы примера можно просто удалить.

  2011-12-05