Следующая серия статей ознакомит вас с основами использования системы мониторинга работоспособности вплоть до создания пользовательских событий.
Затем будет показано следующее 26-минутное видео .проведем вас через создание собственного провайдера, который записывает события в текстовый файл журнала.
ОБНОВЛЕНИЕ На основе комментария
Просмотр вашего обновления и использование Reflector для просмотраисточник для BufferedWebEventProvider
класса, на котором вы основываете свой пользовательский провайдер, я обнаружил, что метод Initialize в BufferedWebEventProvider
в конце проверяет, есть ли какие-либо атрибуты, которые он не распознает.Это делается путем удаления значений из параметра config NameValueCollection, как только они назначены свойствам или полям BufferedWebEventProvider
.Затем выполняется проверка, чтобы определить, является ли параметр config пустым, и если нет, то это означает, что добавлены дополнительные атрибуты, что вызывает исключение.
Что касается того, как решить эту проблему, одним из вариантов являетсяto:
- Переместить вызов в base.Initialize до конца метода
- Удалите дополнительные атрибуты, как только вы назначите их переменным, как это делает поставщик.
Будет работать что-то вроде следующего:
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
{
foo = config["foo"];
if (String.IsNullOrEmpty(foo))
{
// You can set a default value for foo
}
//remove foo from the config just like BufferedWebEventProvider with the other
//attributes. Note that it doesn't matter if someone didn't proivde a foo attribute
//because the NameValueCollection remains unchanged if you call its Remove method
//and the name doesn't exist.
config.Remove("foo");
base.Initialize(name, config);
}
Надеюсь, это сработает для вас.