Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En el ejemplo SubmitDirect se muestra cómo enviar mediante programación mensajes unidireccionales y de solicitud/respuesta a Microsoft BizTalk Server desde . Aplicaciones basadas en NET. El ejemplo muestra el uso de las API de BizTalk Server para los adaptadores. También proporciona un adaptador de recepción, conocido como adaptador de envío, que puede usarse para enviar mensajes a BizTalk Server.
Requisitos previos
Antes de ejecutar este ejemplo, asegúrese de que está registrado como usuario que pertenece al grupo Usuarios de hosts aislados de BizTalk.
Descripción del ejemplo
Este ejemplo muestra cómo realizar varias tareas relacionadas con los adaptadores de BizTalk. En concreto, muestra cómo:
Trabajar con adaptadores aislados que se ejecutan fuera del proceso de BizTalk Server. El adaptador de envío es un adaptador aislado, ya que se crea mediante un proceso externo al proceso de BizTalk Server (se inicia como una aplicación .NET).
Enviar lotes de mensajes a BizTalk Server. El adaptador de envío usa la funcionalidad de envío de mensajes por lotes para enviar varios mensajes a la vez.
Enviar mensajes de forma sincrónica mediante el uso de un paradigma de solicitud-respuesta, así como de forma asíncrona mediante el uso de un paradigma unidireccional.
Registrar un adaptador con BizTalk Server. En este ejemplo se muestra cómo registrar un adaptador y se proporciona un ejecutable de registro que automatiza el registro de un adaptador.
En realidad, este ejemplo son dos ejemplos en uno:
Envío de un lote de mensajes unidireccionales. La aplicación de consola SubmitMessages.exe toma las cadenas de su línea de comandos y las envía como un mensaje independiente a BizTalk Server. BizTalk Server recoge cada uno de estos mensajes enviados en la ubicación de recepción. A continuación, estos mensajes se envían a través de canalizaciones de envío y de recepción de paso a través y, finalmente, se escriben en un archivo de texto.
Envío de mensaje de solicitud-respuesta. La aplicación de consola SubmitRequest.exe toma el archivo .xml especificado de su línea de comandos y lo envía a BizTalk Server. El esquema de este archivo .xml define elementos que contienen dos campos enteros. BizTalk Server recoge el archivo .xml y lo procesa con una orquestación (con un puerto de solicitud-respuesta). Usa una asignación para producir un mensaje de respuesta XML que devuelva un entero, que será el producto de los dos enteros en la solicitud. Cuando la aplicación de consola reciba la respuesta, mostrará el resultado.
Ubicación del ejemplo
< Ruta de acceso de> ejemplos\AdaptersDevelopment\SubmitDirect\
En la siguiente tabla se enumeran los archivos de este ejemplo y se describe el propósito de cada uno de ellos.
| Archivos | Descripción |
|---|---|
| Cleanup.bat | Anula la implementación de ensamblados y los elimina de la caché de ensamblados global (GAC); elimina puertos de envío y de recepción; elimina directorios virtuales de los Servicios de Microsoft Internet Information Server (IIS) según sea necesario. |
| Setup.bat | Crea e inicializa este ejemplo. |
| SubmitDirect.sln | Archivo de solución que incluye el proyecto de BizTalk en la carpeta ProcessRequest y los proyectos de Microsoft Visual C# en las otras carpetas. |
| SubmitMessagesBinding.xml, SubmitRequestBinding.xml | Se usa para la configuración automatizada, como el enlace de puertos. |
| En la carpeta \ProcessRequest: DocIn.xsd, DocOut.xsd, Multiplier.odx, Multiply.btm, ProcessRequest.btproj |
Proporciona un proyecto de BizTalk que realiza la multiplicación de los enteros en el escenario de solicitud-respuesta. |
| En la carpeta \SubmitMessages: AssemblyInfo.cs, SubmitMessages.cs, SubmitMessages.csproj |
Proporciona un proyecto de Visual C# para la aplicación de consola que pasa los parámetros de la cadena de la línea de comandos como un lote de mensajes independientes. |
| En la carpeta \SubmitRequest: AssemblyInfo.cs, DocInstance.xml, SubmitRequest.cs, SubmitRequest.csproj |
Proporciona un proyecto de C# para la aplicación de consola que pasa un archivo .xml (DocInstance.xml) que contiene dos enteros que van a multiplicarse. |
| En la carpeta \TransportProxyUtils: AssemblyInfo.cs, MessageHelper.cs, MessagingAPIInterface.cs, MessagingAPIs.cs, ResponseCallBack.cs, TpBatchAsyncCallback.cs, TpBatchAsyncResult.cs, TpBatchStatus.cs, TransportProxyUtils.csproj |
Proporciona un proyecto de C# para la parte en tiempo de ejecución del adaptador de envío, que implementa métodos para el envío de mensajes de forma sincrónica y asíncrona, y para el envío de mensajes de solicitud únicos y por lotes. |
| En la carpeta \TransportProxyUtilsReg: AssemblyInfo.cs, RegisterAdapter.cs, TransportProxyUtilsReg.csproj |
Proporciona un proyecto de Visual C# que muestra el código que puede usar para registrar adaptadores con BizTalk Server. |
| En la carpeta \TransportProxyUtilsUI: AssemblyInfo.cs, TransportProxyUtilsMgmt.cs, TransportProxyUtilsUI.csproj |
Proporciona un proyecto de Visual C# para la parte de la interfaz de usuario del adaptador de envío. |
Crear e inicializar el ejemplo
Para crear e inicializar el ejemplo SubmitDirect
En una ventana de comandos, desplácese a la siguiente carpeta:
< Ruta de acceso de> ejemplos\AdaptersDevelopment\SubmitDirect
Ejecute el archivo Setup.bat que realiza las acciones siguientes:
Crea la siguiente carpeta de salida para la parte de envío por lotes de este ejemplo.
< Ruta de acceso de> ejemplos\AdaptersDevelopment\SubmitDirect\Out
Compila los distintos proyectos de Visual Studio para este ejemplo.
Registra el adaptador de envío con BizTalk Server.
Crea y enlaza las ubicaciones de recepción de BizTalk Server, así como los puertos de envío y recepción.
Nota
Este ejemplo muestra las siguientes advertencias al crear y enlazar los puertos:
Warning: Receive handler not specified for receive location "SubmitDirectRL"; updating with first receive handler with matching transport type.Warning: Host not specified for orchestration "Microsoft.Samples.BizTalk.ProcessRequest.Multiplier"; updating with first available host.Puede omitir estas advertencias de forma segura. (Para dar cabida a posibles diferencias de nombre en las instalaciones de usuario, se han omitido del archivo de enlace el nombre del host y el controlador de recepción).
Habilita las ubicaciones de recepción e inicia los puertos de envío y orquestación.
Nota
Debe confirmar que BizTalk Server no ha notificado ningún error durante el proceso de generación e inicialización antes de intentar ejecutar este ejemplo.
Nota
Si opta por abrir y crear los proyectos de este ejemplo sin ejecutar el archivo Setup.bat, debe crear, en primer lugar, un par de claves de nombre seguro mediante la utilidad de nombre seguro de .NET Framework (sn.exe). Utilice este par de claves para firmar los ensamblados resultantes.
Nota
Para deshacer los cambios realizados por Setup.bat, ejecute Cleanup.bat. Debe ejecutar Cleanup.bat antes de ejecutar Setup.bat por segunda vez.
Ejecutar el ejemplo
Dado que este ejemplo usa el adaptador de archivo, el host de BizTalk (BizTalkServerApplication) debe estar en ejecución. Use los procedimientos que se exponen a continuación para ejecutar el ejemplo SubmitDirect.
Para ejecutar la parte de envío por lotes del ejemplo SubmitDirect
En una ventana de comandos, desplácese a la siguiente carpeta:
< Ruta de acceso de> ejemplos\AdaptersDevelopment\SubmitDirect\SubmitMessages\bin\Debug
Ejecute el archivo SubmitMessages.exe, y pase varias cadenas de la línea de comandos.
Ejemplo: SubmitMessages msg1 msg2 msg3
Observe los varios archivos de texto creados en la carpeta de salida Out. Estos archivos contienen las cadenas que se pasan en la línea de comandos, una por archivo.
Para ejecutar la parte de solicitud-respuesta del ejemplo SubmitDirect
En una ventana de comandos, desplácese a la siguiente carpeta:
< Ruta de acceso de> ejemplos\AdaptersDevelopment\SubmitDirect\SubmitRequest\bin\Debug
Ejecute el archivo SubmitRequest.exe. Para ello, pase un nombre de archivo .xml correspondiente en la línea de comandos.
Ejemplo: SubmitRequest .. \.. \DocInstance.xml
Observe el mensaje de respuesta XML, que contiene el resultado de la operación de multiplicación, que aparece en la consola.
Comentarios
Puede usar el adaptador de envío en otras aplicaciones. Puede utilizarlo desde cualquier código basado en .NET para enviar mensajes a su servidor de BizTalk Server mediante programación. Para usar este adaptador con su código, lleve a cabo el procedimiento que se expone a continuación.
Para usar el adaptador de ejemplo con su código
Registre el adaptador de envío con su servidor de BizTalk Server. Si ha ejecutado el archivo Setup.bat proporcionado con este ejemplo, el adaptador debe estar registrado y listo para usarse. En caso contrario, puede registrarlo mediante la generación de los proyectos TransportProxyUtils.csproj, TransportProxyUtilsUI.csproj y TransportProxyUtilsReg.csproj y, a continuación, mediante la ejecución el ejecutable producido por el último proyecto, RegisterAdapter.exe.
Importante
Si instala BizTalk en una máquina de 64 bits, cambie todas las instancias de la entrada del Registro de HKEY_CLASSES_ROOT\CLSID\ a HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ en el archivo RegisterAdapter.cs .
Cree un puerto de recepción con una ubicación de recepción que use el adaptador de envío. Especifique la dirección de la ubicación de recepción. La dirección puede ser cualquier cadena que sea única en las ubicaciones de recepción que usen este adaptador.
Haga referencia al ensamblado Microsoft.BizTalk.SDKSamples.AdaptersDevelopment.TransportProxyUtils.dll en el proyecto de Visual Studio.
Envíe mensajes a su servidor de BizTalk Server mediante el uso de uno o varios de los métodos siguientes proporcionados por el ensamblado.
Métodos Descripción SubmitMessage()
BeginSubmitMessage()
EndSubmitMessage()Métodos sincrónicos y asíncronos para enviar un mensaje unidireccional a BizTalk Server. La dirección de la ubicación de recepción donde se envía el mensaje debe establecerse en el contexto del mensaje.
Un valor booleano que indica que el estado del envío (correcto o con errores) se ha devuelto.SubmitMessages()
BeginSubmitMessages()
EndSubmitMessages()Métodos sincrónicos y asíncronos para enviar una matriz de mensajes unidireccionales a BizTalk Server. Las direcciones de las ubicaciones de recepción en las que se envían los mensajes deben estar establecidas en el contexto de los mensajes.
Un valor booleano que indica que el estado del envío (correcto o con errores) se ha devuelto.SubmitSyncMessage()
BeginSubmitSyncMessage()
EndSubmitSyncMessage()Métodos sincrónicos y asíncronos para enviar un mensaje de solicitud a BizTalk Server. La dirección de la ubicación de recepción en la que se envía el mensaje debe estar establecida en el contexto del mensaje.
Se devuelve el mensaje de respuesta.CreateMessageFromString() Crea un objeto de mensaje de BizTalk Server desde una cadena y establece la propiedad de dirección de ubicación de recepción en el contexto del mensaje.
Devuelve un objeto de mensaje de BizTalk.CreateMessageFromStream() Crea un objeto de mensaje de BizTalk Server desde una secuencia y establece la propiedad de dirección de ubicación de recepción en el contexto del mensaje.
Devuelve un objeto de mensaje de BizTalk. ServerPara obtener más detalles sobre los parámetros y los tipos de valores devueltos de estos métodos, vea el archivo MessagingAPIInterface.cs, que se encuentra en la carpeta TransportProxyUtils.