Solucionar el error: mensaje de evento no encontrado

Este artículo le ayuda a solucionar el error en el Visor de eventos: Mensaje de evento no encontrado.

Versión del producto original:   Windows
Número KB original:   166902

Síntomas

El siguiente mensaje de error puede aparecer para eventos en el Visor de eventos:

No se pudo encontrar la descripción del identificador de evento ( <####> ) en Source ( <application name> ) . Contiene las siguientes cadenas de inserción: <the text of the message logged by ReportEvent> .

A continuación se enumeran las posibles causas y más información sobre cómo resolver el problema. La causa puede ser una o varias de las siguientes:

El parámetro de nombre de origen incorrecto se pasa a RegisterEventSource

Asegúrese de que el nombre de origen del Registro coincide con lo que se ha pasado a RegisterEventSource . Esta función se realizará correctamente incluso si el origen no se encuentra en el Registro. El nombre de origen en el Registro debe estar en una subclave de HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog .

Normalmente, un origen de aplicación se muestra en la subclave de la aplicación.

La ruta de .dll o .exe archivo en el Registro es incorrecta

En el valor del Registro denominado en , compruebe que la ruta de acceso al archivo .dll o .exe es correcta y que el nombre del archivo .dll o .exe es EventMessageFile HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\sourcename correcto. En este caso, la aplicación visor de eventos no puede cargar el origen de los recursos del mensaje. Además, si usa o alguna otra macro, debe usar el tipo REG_EXPAND_SZ %SystemRoot% valor del Registro. De lo contrario, la macro no se expande.

El origen de mensajes registrados es el .dll o .exe archivo

En el valor del Registro denominado en , compruebe que la ruta de acceso al archivo .dll o .exe es la que contiene EventMessageFile los recursos de mensaje HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\sourcename esperados. Tenga cuidado de enumerar EventMessageFile una sin una ruta de acceso y tener varios archivos con el mismo nombre. El Visor de eventos sigue las reglas para buscar el origen del mensaje mediante el algoritmo de búsqueda documentado en los comentarios de la API LoadLibrary.

Los recursos de mensaje no están enlazados en el origen EventMessageFile

Una versión del ejemplo de registro no pudo incluir el archivo .rc como parte de la compilación en el makefile. Como resultado, se crea la DLL, pero no se incluyen recursos de mensaje en la compilación. Algunos desarrolladores han intentado incluir el archivo .bin, que es el resultado del compilador de mensajes, como recurso. No enlaza correctamente el recurso a la DLL. Debe usar el archivo .rc que se genera desde el compilador de mensajes, ya que marca el recurso con un identificador de 1 y el tipo 11 ( RT_MESSAGETABLE ). Es necesario que el Visor de eventos encuentre los recursos del mensaje.

Si usa Visual C++ para crear la DLL, debe agregar el archivo .rc que se genera desde el compilador de mensajes como archivo de origen del proyecto EventMessageFile de Visual C++. Se le dirá a Visual C++ que compile el archivo .rc y, a continuación, vincule los recursos a la DLL.

Asegúrese de que el identificador correcto se pasa a la función ReportEvent

Muchos creen que el número de identificador literal que se encuentra en el .mc archivo es el identificador correcto. No es así, porque el compilador de mensajes omite bit a bit el número de id. en la OR bit a bit la gravedad y los bits de LOWORD instalación en HIWORD . Una aplicación siempre debe usar el nombre simbólico en el archivo de encabezado que se genera desde el compilador de mensajes.

Compruebe la MessageIdTypedef= instrucción del .mc archivo. Algunos archivos .mc de ejemplo muestran cómo definir el to para los MessageIDTypedef WORD IDs de categoría. Sin embargo, hace que los IDs de evento aflojen HIWORD el archivo . Para corregir este problema, defina MessageIdTypedef= solo una vez y estadóla en DWORD .

Asegúrese también de que la línea de comandos mc se usa -c de forma coherente para los recursos de mensaje y el archivo de encabezado. El -c modificador se activa un poco en el identificador del HIWORD mensaje.

El Visor de eventos no se reinicia desde que agregó la entrada EventMessageFile

El Visor de eventos almacena en caché las DLL que carga para los orígenes de eventos. Si ha cambiado el Registro para dar un directorio o nombre de origen adecuado después de que se haya iniciado el visor de eventos, debe reiniciar el Visor de eventos.