Compartir a través de


Recepción almacenada en búfer

Este tema es aplicable a Windows Workflow Foundation 4.

En este ejemplo se muestra cómo preparar y configurar la característica de recepción almacenada en búfer en Windows Workflow Foundation (WF). La recepción almacenada en búfer permite al autor del flujo de trabajo crear un flujo de trabajo sin tener que preocuparse por el orden en el que se reciben los mensajes. Este tipo de recepción almacena en búfer los mensajes localmente y los entrega cuando el flujo de trabajo está listo para recibirlos.

Demostraciones

Procesamiento desordenado de mensajes utilizando la recepción almacenada en búfer con actividades de mensajería.

Ee834509.Important(es-es,VS.100).gif Nota:
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.

<InstallDrive>: \WF_WCF_Samples

Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de Windows Communication Foundation (WCF) y WF. Este ejemplo se encuentra en el siguiente directorio.

<InstallDrive>: \WF_WCF_Samples\WF\Basic\Services\BufferedReceive

Análisis

En este ejemplo, un servicio de Windows Communication Foundation (WCF) se implementa utilizando WF y tiene una secuencia de las actividades Receive. Este flujo de trabajo modela un proceso de aprobación de préstamos simple en el que el flujo de trabajo espera tres notificaciones para que se apruebe un préstamo. Una aplicación cliente de Windows Communication Foundation (WCF) envía tres notificaciones puestas en correlación en el orden inverso al que el servicio espera. Dado que la característica de recepción almacenada en búfer está activada en el servicio, cada mensaje desordenado se almacena en búfer en el servicio y se procesa cuando el flujo de trabajo está listo para recibirlo.

La característica de recepción almacenada en búfer requiere la compatibilidad con ReceiveContent por parte del enlace; por consiguiente, el servicio utiliza NetMsmqBinding. No se requiere ninguna configuración especial para el enlace, por lo que se utilizan los valores predeterminados.

<endpoint address ="net.msmq://localhost/private/LoanService/Service1.xamlx"
                  binding="netMsmqBinding"
                  contract="ILoanService"/>

El servicio también expone metadatos para el servicio utilizando ServiceMetadataBehavior.

De igual forma, el extremo del cliente se configura utilizando NetMsmqBinding. El código de cliente y la configuración se generan utilizando la característica Agregar referencia de servicio de Visual Studio. El siguiente ejemplo muestra el extremo de cliente generado en el archivo App.config.

<endpoint address="net.msmq://localhost/private/LoanService/Service1.xamlx"
                binding="netMsmqBinding" bindingConfiguration="NetMsmqBinding_ILoanService"
                contract="ServiceReference1.ILoanService" name="NetMsmqBinding_ILoanService" />

En este ejemplo se requiere que los siguientes componentes de Windows estén habilitados:

  1. Internet Information Services (IIS) 6.0

  2. Internet Information Services (IIS) 6.0 Compatibilidad con la administración, Metabase y Compatibilidad con la configuración

  3. Servicios World Wide Web, Características de desarrollo de aplicaciones y ASP.NET

  4. Microsoft Message Queue Server (MSMQ)

Para configurar y compilar el ejemplo

  1. En un símbolo del sistema de Visual Studio 2010, registre ASP.NET escribiendo aspnet_regiis –I y presione ENTRAR.

  2. Ejecute Visual Studio 2010 como administrador.

  3. Abra LoanService.sln.

  4. Cuando se le pregunte si desea crear los directorios virtuales del proyecto LoanService, seleccione .

Para configurar las colas de servicio

  1. Presione F5 para ejecutar la aplicación LoanClient que crea las colas y activa el servicio definido en Service1.xamlx.

  2. Abra la consola Administración del equipo ejecutando Compmgmt.msc desde un símbolo del sistema.

  3. En la consola Administración del equipo, expanda Servicios y Aplicaciones, Message Queue Server, Colas privadas.

  4. Haga clic con el botón secundario del mouse en la cola loanservice/service1.xamlx y seleccione Propiedades.

  5. Seleccione la pestaña Seguridad y agregue los permisos Todos reciben mensaje, Inspeccionar mensaje y Enviar mensaje.

  6. Abra el Administrador de Internet Information Services (IIS) 6.0 .

  7. Navegue hasta Servidor, Sitios, Sitio web predeterminado, Privado, LoanService y seleccione Opciones avanzadas

  8. Cambie los Protocolos habilitados para que sean http, net.msmq.

Para ejecutar el ejemplo

  1. Vaya a https://localhost/private/loanservice/service1.xamlx para asegurarse de que el servicio se está ejecutando.

  2. Presione F5 para ejecutar la aplicación LoanClient. Cuando el flujo de trabajo finaliza, se debe guardar un archivo out.txt en C:\Inbox que contenga el resultado del intercambio de mensajes.

Para realizar una limpieza

  1. Abra la consola Administración del equipo ejecutando Compmgmt.msc desde un símbolo del sistema.

  2. Expanda Servicios y Aplicaciones, Message Queue Server, Colas privadas.

  3. Elimine la cola loanservice/service1 .xamlx.

  4. Quite el directorio C:\Inbox.

Ee834509.Important(es-es,VS.100).gif Nota:
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.

<InstallDrive>:\WF_WCF_Samples

Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de Windows Communication Foundation (WCF) y WF . Este ejemplo se encuentra en el siguiente directorio.

<InstallDrive>: \WF_WCF_Samples\WF\Basic\Services\BufferedReceive