The message resource is present but the message is not found in the message table

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Apokal
Сообщения: 79
Зарегистрирован: 14 янв 2008, 19:02

19 май 2011, 17:56

Привет, всем!

Я надеюсь, что вы мне поможете ...

Суть проблемы:

Существует провайдер (поставщик, источник) событий, который называется "Service Control Manager" в журнале событий System. В реестре EventMessageFile этого провайдера содержит путь к файлу содержащему сообщения -- % SystemRoot% \ system32 \ services.exe. В нём содержится сообщение с ID = 7036 и это сообщение выглядит как "% 1 служба перешла в состояние % 2 ". Вы можете генерировать его очень просто путем остановки или запуска каких-либо служб в services.msc.

Все, что я хочу это сделать такую запись сам в журнале System от имени Service Control Manager.

Вот мой простенький код:

Код: Выделить всё

using System;
using System.Diagnostics;
using System.Diagnostics.Eventing;
 
class MySample
{
 
     public static void Main()
     {
  
           EventLog myNewLog = new EventLog("System", ".", "Service Control Manager");
  
           myNewLog.WriteEntry("Test",EventLogEntryType.Information, 7036);
     }
}
Я запустил приложение от имени администратора. Событие было записано журнал System с правильным ID, источник, и т.д. Но описание было события было:

"The description for Event ID 7036 from source Service Control Manager cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event:

Test

the message resource is present but the message is not found in the string/message table

вместо ожидаемого "Служба Test перешла в состояние %2" .

В чем моя ошибка?
For Those Who About The Rock We Salute You!!!
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

26 май 2011, 19:21

Дело в том, что формат журнала событий изменился, начиная с версии Windows Vista: теперь журнал событий поддерживает структурированный XML формат событий, а прежний, "плоский", поддерживается для совместимости. К сожалению, пока эти возможности не реализованы средствами классов .NET (EventLog и иже с ним). Поэтому ваша попытка притвориться настоящей службой и не проходит :)

Если хотите разбираться, придется возвращаться к программированию на С++. Дам пару ссылок:
http://www.sans.org/reading_room/whitep ... ging_32949 - краткое введение в формат evtx
http://msdn.microsoft.com/en-us/library ... 85%29.aspx - корневая ссылка MSDN по новому формату Windows Event Log

Успехов в изучении!
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

30 май 2011, 16:47

Не обязательно С++. Насколько я помню, все API Windows можно вызывать напрямую из .NET через интеропы.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

30 май 2011, 17:17

Romeo писал(а):Не обязательно С++. Насколько я помню, все API Windows можно вызывать напрямую из .NET через интеропы.
Можно, только в чем смысл? Проще писать код в родной среде.
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

30 май 2011, 17:19

Ну смысл есть, если есть требование, чтобы всё было написано на .NET, но вот в этом месте нужно дёрнуть чистую Win API.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

30 май 2011, 17:39

Здесь не тот случай, человеку придется приличный объем логики реализовать с использованием нативного кода.
А требования, конечно, могут быть любыми, но должны все-таки базироваться на здравом смысле :)
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

31 май 2011, 10:20

Полностью с тобой согласен, что на С++ это написать более правильно, но требования, к сожалению, далеко не всегда базируются на здравом смысле - сталкивался со множеством примеров :)
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
MarishafealaSoke
Сообщения: 0
Зарегистрирован: 03 май 2013, 22:15
Откуда: Россия
Контактная информация:

09 май 2013, 07:33

Скоро лето!
Хай пользователи форума forum.developing.ru, две недели назад пользователь под ником Karolino4kaCer просила меня расказать последние новинки Футболка Blend в 2013 году, а так же платьев бренда Blend, так вот наконец то нашла время для этого, админы прошу не удалять, а перенести в соответствующий раздел, если я ошиблась например Мужская одежда/Футболки/Короткий рукав
))) всех целую


Футболка Blend стоимость 871 РУБ..
Если Вам понравились Футболка Blend, нажмите кнопку "GO!" ниже чтоб узнать где выгодней всего купить Футболка Blend бренда Blend

Изображение Изображение


посмотрите другую стильную одежду

Категория: Мужская одежда/Футболки/Короткий рукав
купить
Бренд: купить Футболка Blend Blend

А вот еще ключевые слова по которым люди ищут Футболка Blend Blend:
- купить Футболка Blend Blend
- заказать Футболка Blend Blend
- цена Футболка Blend Blend
- интернет магазин Мужская одежда/Футболки/Короткий рукав
Футболка Blend Blend

- фото Футболка Blend Blend
- Футболка Blend 2012
- интернет магазин Футболка Blend Москва
- новинки Футболка Blend 2013
- модные Футболка Blend 2013
- Футболка Blend для свадьбы
- купить Футболка Blend Москва

- купить Футболка Blend Киев
- купить Футболка Blend Санкт-петербург
- интернет магазин Футболка Blend Москва


купить одежду
заказать одежду
купить обувь
заказать обувь
купить женскую одежду
купить мужскую одежду
заказать мужскую одежду
заказать женскую одежду
купить сумку
заказать сумку
купить одежду через интернет
заказать одежду через интернет
купить одежду дешево
где дешево купить одежду




#$#
MarishafealaSoke
Сообщения: 0
Зарегистрирован: 03 май 2013, 22:15
Откуда: Россия
Контактная информация:

09 май 2013, 07:36

Скоро лето!
Хай пользователи форума forum.developing.ru, три недели назад пользователь под ником Karolino4kaCer просила меня запостить последние новинки Футболка Blend в 2013 году, а так же рубашек бренда Blend, так вот наконец то нашла время для этого, админы прошу не удалять, а перенести в соответствующий раздел, если я ошиблась например Мужская одежда/Футболки/Короткий рукав
))) всех целую


Футболка Blend стоимость 871 РУБ..
Если Вам нравится Футболка Blend, нажмите кнопку "GO!" ниже чтоб узнать где выгодней всего купить Футболка Blend бренда Blend

Изображение Изображение


посмотрите другую стильную одежду

Категория: Мужская одежда/Футболки/Короткий рукав
купить
Бренд: купить Футболка Blend Blend

А вот еще ключевые слова по которым люди ищут Футболка Blend Blend:
- купить Футболка Blend Blend
- заказать Футболка Blend Blend
- цена Футболка Blend Blend
- интернет магазин Мужская одежда/Футболки/Короткий рукав
Футболка Blend Blend

- фото Футболка Blend Blend
- Футболка Blend 2012
- интернет магазин Футболка Blend Москва
- новинки Футболка Blend 2013
- модные Футболка Blend 2013
- Футболка Blend для свадьбы
- купить Футболка Blend Москва

- купить Футболка Blend Киев
- купить Футболка Blend Санкт-петербург
- интернет магазин Футболка Blend Москва


купить одежду
заказать одежду
купить обувь
заказать обувь
купить женскую одежду
купить мужскую одежду
заказать мужскую одежду
заказать женскую одежду
купить сумку
заказать сумку
купить одежду через интернет
заказать одежду через интернет
купить одежду дешево
где дешево купить одежду




#$#
MarishafealaSoke
Сообщения: 0
Зарегистрирован: 03 май 2013, 22:15
Откуда: Россия
Контактная информация:

13 май 2013, 05:16

Ответить