Newsletter (ejemplo)

Actualizado: 17 de julio de 2006

El ejemplo Newsletter muestra cómo crear una aplicación simple de administración de suscripciones basada en Web. El ejemplo tiene un diseño de n niveles que contiene una capa de interfaz basada en HTML y una capa de nivel medio de administración de suscripciones. Un proyecto Web de Microsoft Visual Studio crea un servidor Web de Visual Web Developer cuando se ejecuta el proyecto Web, de manera que se puede usar el ejemplo con mayor facilidad. Este ejemplo no es compatible con IA64.

Escenario

Adventure Works Cycles publica boletines para clientes y patrocina eventos promocionales. Con esta aplicación, los clientes pueden suscribirse para recibir estos boletines y notificaciones sobre eventos promocionales.

Un cliente usa una página Web para crear una suscripción para un tipo de información (boletín o promoción) y selecciona cuándo debe enviarse (envío controlado por eventos o programado).

En Adventure Works Cycles, un archivo que contiene datos del boletín y datos de eventos promocionales se coloca en una carpeta supervisada. Cuando se ejecuta el generador, ejecuta reglas de crónica de eventos para actualizar la crónica usada para suscripciones programadas, luego ejecuta las reglas controladas por eventos en lotes de eventos sin procesar, y luego ejecuta las reglas de suscripción programada para todas las suscripciones programadas que deben procesarse. Cuando se ejecuta la regla de suscripción programada, actualiza una crónica de suscripción usada para hacer un seguimiento de la última vez que cada suscripción produjo una notificación. Esta información se usa para evitar notificaciones duplicadas.

Las notificaciones se generan en las siguientes condiciones:

  • El tipo de documento del evento (boletín o promoción) coincide con el tipo de documento de la suscripción.
  • La categoría de boletín o evento coincide con la categoría de la suscripción.
  • Si la suscripción es una suscripción programada, el tiempo programado ha transcurrido en el intervalo entre la última activación de la regla generadora y la activación actual de la regla generadora.
  • Si la suscripción es una suscripción programada, el tiempo en que el evento se confirmó en la base de datos es mayor que el tiempo en que la suscripción generó una notificación por última vez.

Las notificaciones resultantes se presentan con un formato que usa un formateador de contenido XSLT y luego se envían con el protocolo de entrega File.

Lenguajes

XML, XSD, XSLT y Microsoft Visual C# o Microsoft Visual Basic.

Características

El ejemplo Newsletter usa las siguientes características de Microsoft SQL Server Notification Services.

Área de aplicación Características

Clase de evento

Una clase de evento básica para suscripciones controladas por eventos y una crónica de evento para suscripciones programadas.

Clase de suscripción

Suscripciones controladas por eventos y programadas.

Clase de notificación

Entrega de resumen.

Proveedores de eventos

Proveedor de eventos FileSystemWatcher.

Formateadores de contenido

Formateador de contenido XSLT.

Protocolos de entrega

Protocolos de entrega File y SMTP.

Aplicación de administración de suscripciones

Microsoft ASP.NET con servidor Web de Visual Web Developer.

Requisitos previos

Antes de ejecutar este ejemplo, asegúrese de que esté instalado el siguiente software:

  • Microsoft SQL Server 2005, incluidos los siguientes componentes:
    • Motor de base de datos.
    • Notification Services.
    • SQL Server Management Studio.
    • Ejemplos de Notification Services. Estos ejemplos están incluidos en SQL Server 2005. Puede descargar la última versión de los ejemplos en el sitio Web para programadores de SQL Server.
  • Microsoft Visual Studio 2005, incluido Visual Web Designer

Generar el ejemplo

Para generar el ejemplo, deberá hacer lo siguiente:

  • Crear la instancia de Notification Services.
  • Registrar la instancia de Notification Services.
  • Conceder permisos de SQL Server y base de datos.

Los siguientes procedimientos muestran cómo realizar cada una de estas tareas para el ejemplo Newsletter.

Paso 1: crear la instancia de Notification Services

  1. Abra SQL Server Management Studio y conéctese a una instancia de SQL Server.

  2. En el Explorador de objetos, haga clic con el botón secundario en la carpeta Notification Services y seleccione Nueva instancia de Notification Services.

  3. En el cuadro de diálogo Nueva instancia de Notification Services, haga clic en Examinar y seleccione el archivo InstanceConfig.xml en la carpeta raíz del ejemplo Newsletter.

  4. En el cuadro Parámetros, escriba valores para los tres parámetros:

    • SampleDirectory es la ruta de acceso de la carpeta raíz del ejemplo Newsletter. La ruta de acceso predeterminada es C:\Archivos de programa\Microsoft SQL Server\90\Samples\Notification Services\Newsletter.
    • NotificationServicesHost es el nombre del servidor local.
    • SQLServer es el nombre de la instancia de SQL Server.
  5. Seleccione la casilla de verificación Habilitar la instancia una vez creada.

  6. Haga clic en Aceptar.

  7. Cuando Notification Services haya terminado de crear la instancia, haga clic en Cerrar.

Paso 2: registrar la instancia de Notification Services

  1. En SQL Server Management Studio, abra el nodo de Notification Services, haga clic con el botón secundario en NewsletterInstance, seleccione Tareas y, a continuación, seleccione Registrar.

  2. En el cuadro de diálogo Registrar, seleccione la casilla de verificación Crear servicio de Windows. El servicio de Windows ejecuta la instancia de Notification Services en este equipo.

  3. En Inicio de sesión de servicio, escriba una cuenta de Windows y la contraseña. Ésta es la cuenta de Windows con la cual se ejecutará el servicio. Si usa autenticación de Windows para obtener acceso a SQL Server, el servicio de Windows también usará esta cuenta para conectarse a SQL Server.

  4. Si debe usar autenticación de SQL Server para obtener acceso a SQL Server, seleccione Autenticación de SQL Server en Autenticación y, a continuación, escriba un nombre de inicio de sesión de SQL Server y la contraseña.

    Se recomienda usar la autenticación de Windows.

  5. Haga clic en Aceptar.

  6. Cuando Notification Services haya terminado de registrar la instancia, haga clic en Cerrar.

[!NOTA] Si está implementando un ejemplo de Notification Services con una cuenta que es el propietario de la base de datos o un administrador del sistema, no tiene que conceder permisos de SQL Server a la cuenta. Conceder estos permisos puede generar un error, que se puede omitir. Al implementar sus propias aplicaciones, debe utilizar cuentas con un menor número de privilegios para mejorar la seguridad.

Paso 3: conceder permisos de SQL Server, base de datos y carpeta

  1. En el Explorador de objetos, expanda el nodo Seguridad.

  2. Si debe crear una nueva cuenta de inicio de sesión de base de datos para el servicio de Windows, haga clic con el botón secundario en Inicios de sesión, seleccione Nuevo inicio de sesión y cree la cuenta de Inicio de sesión:

    • Para usar la autenticación de Windows, seleccione Autenticación de Windows y escriba la misma cuenta de Windows que especificó al registrar la instancia.
    • Si debe usar la autenticación de SQL Server, seleccione Autenticación de SQL Server y escriba el mismo nombre de inicio de sesión de SQL Server y la misma contraseña que especificó al registrar la instancia.
  3. Si el inicio de sesión utilizado por el servicio de Windows ya tiene acceso a SQL Server, haga clic con el botón secundario en el inicio de sesión y seleccione Propiedades.

  4. En el panel izquierdo del cuadro de diálogo Inicio de sesión, seleccione Asignación de usuarios.

  5. Conceda permisos para la base de datos NewsletterInstanceNSMain:

    1. En el cuadro Usuarios asignados a este inicio de sesión, seleccione NewsletterInstanceNSMain.
    2. En el cuadro Miembros de la función de base de datos para: NewsletterInstanceNSMain, seleccione NSRunService.
  6. Conceda permisos para la base de datos NewsletterInstanceNewsletter:

    1. En el cuadro Usuarios asignados a este inicio de sesión, seleccione NewsletterInstanceNewsletter.
    2. En el cuadro Miembros de la función de base de datos para: NewsletterInstanceNewsletter, seleccione NSRunService.
  7. Haga clic en Aceptar para aplicar los permisos de SQL Server.

  8. Con el Explorador de Windows, configure la seguridad para la carpeta Events:

    1. Vaya a la carpeta Events del ejemplo Newsletter.
    2. Haga clic con el botón secundario en la carpeta Events, seleccione Compartir y seguridad y, a continuación, haga clic en la ficha Seguridad.
    3. Haga clic en Agregar y agregue la cuenta usada por el servicio de Windows.
    4. En el cuadro Nombres de grupos o usuarios, seleccione la cuenta que acaba de agregar.
    5. En el cuadro Permisos para, seleccione los permisos Leer y Modificar.
    6. Haga clic en Aceptar para aplicar los cambios.
  9. Configure la seguridad para la carpeta Notifications:

    1. Vaya a la carpeta Notifications del ejemplo Newsletter.
    2. Haga clic con el botón secundario en la carpeta Notifications, seleccione Compartir y seguridad y, a continuación, haga clic en la ficha Seguridad.
    3. Haga clic en Agregar y agregue la cuenta usada por el servicio de Windows.
    4. En el cuadro Nombres de grupos o usuarios, seleccione la cuenta que acaba de agregar.
    5. En el cuadro Permisos para, seleccione Escribir.
    6. Haga clic en Aceptar para aplicar los cambios.

Ejecutar el ejemplo

Para ejecutar el ejemplo, deberá hacer lo siguiente:

  • Iniciar la instancia.
  • Usar una aplicación Web para agregar suscriptores y suscripciones.
  • Colocar un archivo de XML que contiene eventos.

Los siguientes procedimientos indican cómo desarrollar estas tareas y cómo ver las notificaciones obtenidas como resultado.

Paso 1: iniciar la instancia

  1. En el Explorador de objetos, abra la carpeta Notification Services.

  2. Haga clic con el botón secundario en NewsletterInstance y seleccione Inicio.

Paso 2: agregar suscriptores y suscripciones

  1. Abra Visual Studio 2005.

  2. En el menú Archivo, seleccione Abrir y, a continuación, haga clic en Sitio Web.

  3. En el cuadro de diálogo Abrir sitio Web, vaya a la carpeta SubscriptionManagementWeb\cs\SubscriptionManagementWeb del ejemplo Newsletter y seleccione Abrir.

  4. Presione la tecla F5 para ejecutar la aplicación Web.

    Use la página Web para agregar suscripciones para el usuario del ejemplo en la aplicación Newsletter. Los valores de suscripción predeterminados tienen como resultado una notificación.

[!NOTA] En el caso de aplicaciones de producción o si está ejecutando esta aplicación en una cuenta restringida, agregue el inicio de sesión de SQL Server de la aplicación a la función de base de datos NSSubscriberAdmin en las bases de datos de instancia y de aplicación.

Paso 3: enviar eventos

  1. En el Explorador de Windows, vaya a la carpeta raíz del ejemplo Newsletter y, a continuación, copie el archivo EventData.xml en la subcarpeta Events.

    Al colocar el archivo, el proveedor de eventos FileSystemWatcher lee los datos del archivo, lo presenta a la aplicación y, a continuación, cambia la extensión del archivo por .done.

    Si aparece un error al leer o enviar datos, el proveedor de eventos cambia la extensión del archivo por .err. Vea el Visor de sucesos de Windows para obtener detalles adicionales sobre el error.

Paso 4: ver notificaciones

  1. Espere aproximadamente un minuto para que Notification Services produzca notificaciones.

  2. En el Explorador de Windows, vaya a la carpeta Notifications del ejemplo Newsletter. Debe encontrar un archivo denominado FileNotifications.txt, que es el archivo que contiene las notificaciones.

  3. Vaya a la carpeta donde se colocan los mensajes de correo electrónico. Normalmente es una de las carpetas de C:\Inetpub\mailroot. Según el estado del servidor SMTP, las notificaciones deben estar en la carpeta Pickup o Queue. Si el servicio SMTP se está ejecutando, los mensajes se pueden mover a la carpeta Badmail.

Eliminar el ejemplo

Use el siguiente procedimiento para eliminar el ejemplo Newsletter.

Para eliminar el ejemplo Newsletter

  1. En el Explorador de objetos, abra la carpeta Notification Services.

  2. Haga clic con el botón secundario en NewsletterInstance y, a continuación, seleccione Detener.

  3. Haga clic con el botón secundario en NewsletterInstance, seleccione Tareas y, a continuación, haga clic en Eliminar del registro.

  4. Haga clic con el botón secundario en NewsletterInstance, seleccione Tareas y, a continuación, haga clic en Eliminar.

Vea también

Otros recursos

Ejemplos de SQL Server Notification Services
Proteger Notification Services

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

17 de julio de 2006

Contenido modificado:
  • Se ha agregado Visual Web Designer como requisito previo para ejecutar este ejemplo.

14 de abril de 2006

Contenido modificado:
  • Se agregó una nota acerca de la ejecución de ejemplos mediante permisos de propietario de base de datos.