Cómo registrar sucesos de páginas Active Server

Exención de responsabilidades de contenido KB retirado

Este artículo se refiere a productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Importante: este artículo contiene información acerca de cómo modificar el registro. Antes de modificar el registro, asegúrese de realizar una copia de seguridad y asegúrese de que sabe cómo restaurarlo si ocurre algún problema. Para obtener información acerca de cómo hacer copia de seguridad, restaurar y modificar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

EN ESTA TAREA

Resumen

Este artículo muestra dos métodos para escribir sucesos en un registro de eventos desde las páginas Active Server (ASP). ASP no proporciona un mecanismo integrado para registrar sucesos en los registros de sucesos de Microsoft Windows. Uno de los enfoques más conocidos es generar el modelo de objetos componentes (COM) componentes personalizados utilizando Microsoft Visual Basic o Microsoft Visual C++, que proporcionan métodos para escribir sucesos en un registro de sucesos y utilizar el componente en las páginas ASP. Otro enfoque consiste en utilizar el objeto Shell de Windows Script Host.

Nota: si desea anexar texto a un registro de Internet Information Server, puede utilizar el método Response.AppendToLog .

Requisitos

  • Microsoft Windows 95, Windows 98, Windows NT 4.0 Server, Windows NT 4.0 Workstation, Windows 2000 Professional, Windows 2000 Server o Windows 2000 Advanced Server
  • Microsoft Internet Information Server (IIS) o Personal Web Server (PWS)

    Para instalar IIS 5.0 en equipos que ejecutan Windows 2000, desde el menú Inicio , seleccione configuración, seleccione Panel de Controly, a continuación, haga clic en Agregar o quitar programas. Haga clic en Agregar o quitar componentes de Windows.

    En equipos que ejecutan Windows NT, puede instalar IIS 4.0 o PWS desde Windows NT 4.0 Option Pack.

    En equipos que ejecutan Windows 95 o Windows 98, puede instalar PWS desde el CD de Windows 95 o Windows 98.

Solucionar problemas de notas

  • El registro de sucesos no funciona en los componentes a los que llama desde ASP en Windows 2000.

    De forma predeterminada, los componentes que se ejecutan desde una página ASP se crean bajo la cuenta IUSR_COMPUTERNAME. Esta cuenta es un miembro del grupo Invitados y los privilegios de seguridad necesitan para escribir en el registro de sucesos de aplicación cambiaron en Windows 2000. Para resolver este problema, debe modificar una clave del registro. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    251264 App.Logevent no funciona en los componentes a los que llama desde ASP en Windows 2000

  • Puede recibir un mensaje de error "Permiso denegado" cuando llama al método LogEvent .

    Este mensaje de error se produce porque, de forma predeterminada, se establece el registro de sucesos de aplicación para restringir el acceso de invitado, y el usuario anónimo forma parte del grupo Invitados. Para evitar este problema, utilice cualquiera de los métodos siguientes:Advertencia: Si utiliza incorrectamente el Editor del registro, puede provocar problemas graves que conlleven la reinstalación del sistema operativo. Microsoft no puede garantizar que pueda solucionar los problemas derivados del uso incorrecto del Editor del registro. Utilice el Editor del registro bajo su propio riesgo.

    • Establezca la siguiente clave del registro en 0 en lugar de 1y, a continuación, reinicie el equipo para que surtan efecto los cambios.
      HKLM\System\CurrentControlSet\Services\EventLog\Application
      Nombre: RestrictGuestAccess
      Tipo: REG_DWORD
      Nota: Esto permite que todas las cuentas Invitado escribir en el registro de sucesos de aplicación.
    • Quite al usuario anónimo del grupo invitado.
    • Utilice otro usuario anónimo para esta página concreta.
    • Desactivar el acceso anónimo para la página o aplicación.

Utilizar Windows Scripting Host Shell para registrar sucesos

La forma más fácil de registrar sucesos desde páginas ASP es utilizar Windows Scripting Host Shell. Se puede hacer uso de la LogEvent método de objeto Shell para escribir sucesos directamente en los registros de sucesos.

Requisitos específicos para este método

Este método requiere que instale a Microsoft Windows Script Host. Puede descargar e instalar Windows Script 5.7 desde los siguientes sitios Web de Microsoft:

Windows Script 5.6 para Windows XP y Windows 2000

Crear una página ASP para registrar sucesos

  1. En el menú Inicio de Windows, haga clic en Ejecutary, a continuación, escriba el Bloc de notas para abrir el Bloc de notas.
  2. Resalte el código siguiente, haga clic en el código y, a continuación, haga clic en Copiar. En el Bloc de notas, haga clic en Pegar en el menú Edición .
    <%@ Language=VBScript %><HTML>
    <BODY>
    <%
    'Use these Constants to designate the type of Event Log.
    const SUCCESS = 0
    const ERROR = 1
    const WARNING = 2
    const INFORMATION = 4
    const AUDIT_SUCCESS = 8
    const AUDIT_FAILURE = 16

    dim WshShell
    set WshShell = Server.CreateObject("WScript.Shell")
    wshshell.Logevent WARNING, "Test Event Log by Windows Script Host!"
    set wshshell=nothing
    Response.write "Event Logged Successfully by Windows Script Host!"

    %>
    </BODY>
    </HTML>

  3. En el menú archivo , haga clic en Guardar.
  4. En el cuadro de diálogo Guardar como , haga clic en la flecha abajo en el cuadro de texto Guardar en y haga clic en la raíz del servidor Web PWS o IIS (que de forma predeterminada, es C:\InetPub\Wwwroot). En el cuadro de lista desplegable Guardar como tipo , haga clic en Todos los archivos. En el cuadro de texto Nombre de archivo , escriba EventLog.asp. Por último, haga clic en Guardar.

Utilizar un componente de Visual Basic para registrar sucesos

Otra manera de registrar sucesos en el registro de sucesos consiste en crear un componente de Visual Basic que utiliza el método LogEvent del objeto Application para escribir sucesos en el registro de sucesos. Además de este método, puede utilizar las propiedades LogPath y LogMode para especificar la ruta de acceso a un archivo de registro personalizado y determinar cómo se realizará el registro. Si no hay ningún LogPath está establecido, el método LogEvent escribe en el archivo LogEvent de Windows NT.

Requisitos específicos para este método

Este método requiere que instale Visual Basic 6.0. En este método, crea un proyecto DLL ActiveX de Visual Basic para crear un componente COM que puede utilizar en la página ASP. Este componente COM contiene un método que utiliza el método LogEvent del objeto Application para escribir el texto pasado en el registro de sucesos.

Puede descargar la última versión de Visual Studio de Microsoft, que contiene Visual Basic, desde el siguiente sitio Web de Microsoft:

Crear un proyecto de DLL ActiveX de Visual Basic

  1. Desde el menú Inicio , seleccione programas, elija Microsoft Visual Studio 6.0y, a continuación, haga clic en Microsoft Visual Basic 6.0 para abrir Visual Basic.
  2. En el cuadro de diálogo Nuevo proyecto , haga clic en DLL ActiveXy, a continuación, haga clic en Abrir.
  3. En el menú proyecto , haga clic en Propiedades del proyectoy, a continuación, seleccione las casillas de verificación Ejecución desatendida y conservado en memoria . Haga clic en Aceptar.
  4. En el Explorador de proyectos, seleccione el proyecto y, a continuación, presione la tecla F4 para mostrar las propiedades del proyecto. Resalte el nombre actual y, a continuación, cambie el nombre del proyecto MyEventLog.
  5. En el Explorador de proyectos, haga clic en Class1, resalte el nombre actual y, a continuación, cambie el nombre Class1
    Registro de sucesos.
  6. Resalte el código siguiente, haga clic en el código y, a continuación, haga clic en Copiar. En el Explorador de proyectos, haga doble clic en el registro de sucesosy, a continuación, presione la combinación de teclas CTRL+V para pegar el siguiente código en el editor de código:
    Function LogEvent(strMessage As String, EventType As Integer) As Boolean   App.LogEvent strMessage, EventType
    End Function

  7. Guarde el proyecto MyEventLog en la carpeta de su elección.
  8. En el menú archivo , haga clic en Crear MyEventLog.dll.
  9. En el cuadro de diálogo Crear proyecto , no cambie el nombre del archivo DLL y haga clic en Aceptar. Se crea el archivo DLL en la carpeta de proyecto de Visual Basic con el mismo nombre que el proyecto.
Ahora debe crear una página ASP que utiliza la DLL de ActiveX creado recientemente para escribir texto en el registro de sucesos.

Crear una página ASP para utilizar el objeto EventLog

  1. En el menú Inicio , haga clic en Ejecutar, escriba notepady, a continuación, haga clic en Aceptar para abrir el Bloc de notas.
  2. Resalte el código siguiente, haga clic en el código y, a continuación, haga clic en Copiar. En el Bloc de notas, haga clic en Pegar en el menú Edición para pegar el siguiente código:
    <%@ Language=VBScript %><HTML>
    <BODY>
    <%
    Const vbLogEventTypeError = 1 'Error.
    Const vbLogEventTypeWarning = 2 'Warning.
    Const vbLogEventTypeInformation = 4 'Information.

    dim myLog
    set myLog = server.CreateObject("MyEventLog.EventLog")
    myLog.LogEvent "Test Event Log by Visual Basic", vbLogEventTypeWarning
    Response.Write "Event Logged Successfully using Visual Basic Component!"
    set myLog = nothing

    %>
    </BODY>
    </HTML>

  3. En el menú archivo , haga clic en Guardar.
  4. En el cuadro de diálogo Guardar como , haga clic en la raíz del servidor Web PWS o IIS (que de forma predeterminada, es C:\InetPub\Wwwroot). En el cuadro de lista desplegable Guardar como tipo , haga clic en Todos los archivos. En el cuadro de texto Nombre de archivo , escriba EventLogVB.asp. Por último, haga clic en Guardar.

Probar el registro de sucesos

Para probar el registro de sucesos, siga estos pasos:
  1. Abra el explorador. Si Internet Explorer está instalado en el equipo, desde el menú Inicio , haga clic en Ejecutar, escriba iexplorey, a continuación, haga clic en Aceptar.
  2. Para probar la página de registro de sucesos que utiliza a Windows Script Host, escriba la siguiente dirección en la barra de direcciones y, a continuación, presione la tecla ENTRAR:
    http://<YourComputerName>/EventLog.asp
    Para probar la página de registro de sucesos que utiliza un componente de Visual Basic, escriba la siguiente dirección en la barra de direcciones y, a continuación, presione la tecla ENTRAR:
    http://<YourComputerName>/EventLogVB.asp
  3. Si puede ver los mensajes que escribió en las páginas ASP, puede abrir el Visor de registro de eventos o archivos de registro de sucesos para ver si se registró el evento.

¿Dónde está el registro de sucesos?

  • En los sistemas basados en Windows 2000 o Windows NT, puede utilizar el Visor de sucesos para leer los registros de eventos. Para abrir el Visor de sucesos, en el menú Inicio , seleccione programas, seleccione Herramientas administrativasy, a continuación, haga clic en Visor de sucesos. Haga clic en Registro de aplicación para ver si se ha registrado el suceso de prueba.
  • Si utiliza a Windows Scripting Host para registrar sucesos en los equipos basado en Windows 95, Windows 98 y Windows Millennium Edition, los eventos se registran en el archivo WSH.log, que se encuentra en el directorio Windows del usuario. WSH.log contiene una marca de hora, el tipo de evento y el texto de la entrada del registro.
  • Si utiliza un componente de Visual Basic para registrar sucesos en el equipo basado en Windows 95, basado en Windows 98 y basado en Windows Millennium Edition, los sucesos se registran en el archivo Vbevents si no se especifican archivos en la propiedad App.LogPath del objeto Application de Visual Basic.

Solución de problemas

  1. App.LogEvent solamente se inicia en aplicaciones compiladas.

    Por diseño, App.LogEvent no funciona cuando se ejecuta la aplicación desde el entorno de diseño integrado (IDE) de Visual Basic; sólo funciona cuando la aplicación está en un estado compilado. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    161306 App.LogEvent sólo registros en aplicaciones compiladas

  2. Debe conceder los permisos de archivo adecuados para el archivo DLL.

    En la Web, debe conceder permisos de archivo para el archivo DLL a las siguientes cuentas:

    • IUSR_ComputerName
    • IWAM_ComputerName
    • Sistema
    • Grupo de administradores

    Nota: si no utiliza el acceso anónimo al sitio Web, debe conceder todos grupo leer y ejecutar permisos para el archivo DLL y el directorio/WinNT/System32.

Referencias

Para obtener información adicional, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
154576 cómo escribir en el registro de sucesos de Windows NT desde Visual Basic

257541 cómo escribir en el registro del sistema de Windows NT o Windows 2000 mediante Windows Script Host

Propiedades

Id. de artículo: 301309 - Última revisión: 22 ene. 2017 - Revisión: 2

Comentarios