es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilizando el adaptador HTTPAdapter y Receive.dll arroja un error.

Estoy usando BizTalk 2020. Tengo una aplicación web que llama a una webapi que llama a BizTalk a través de IIS. Al ejecutar la solicitud, obtengo un error en BizTalk:

Ha habido un fallo al ejecutar la canalización de recepción: “Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35” Fuente: “Desensamblador de XML” Puerto de recepción: “HTTPREC” URI: “/BTHTTP/BtsHttpReceive.dll” Razón: Ha fallado la búsqueda de la especificación de documento por tipo de mensaje “http://schemas.microsoft.com/2003/10/Serialization/#string”. Verifique que el esquema se haya implementado correctamente.

Verifiqué mis esquemas y encontré que todos se implementaron. Usé una instancia generada para mi mensaje.

LocationID,BulletinLevel,NotifyUponCompletion,SupervisorName,CrewMemberID,AircraftID

Lo validé. Miré en BizTalk Hub y encontré un mensaje reanudable para el puerto SND del día anterior. Abrí el mensaje y este fue el contenido del cuerpo:

<Select xmlns=”05/TableOp/dbo/MainData”><Columns>LocationID,BulletinLevel,NotifyUponCompletion,SupervisorName,CrewMemberID,AircraftID</Columns></Select>

No estoy seguro de por qué agregó el xmlns como una cadena al mensaje. Lo he reconstruido e implementado varias veces reiniciando los hosts después de la actualización. Mis puertos están utilizando las canalizaciones XMLReceive y XMLTransmit. El proceso recibe un mensaje y luego hace una llamada al servidor SQL para ejecutar la selección.

Aquí está mi orquestación:

¿Necesito agregar a mi mensaje antes de ejecutar la solicitud?

Comprobé IIS, configuraciones de canalización, configuraciones del módulo ISAPI y versión de asp.net, todo parece estar correcto.

ACTUALIZACIÓN (08/12/2021) Creé una canalización personalizada que elimina el elemento que envuelve el mensaje original. Se procesa, pero obtengo un error de servidor interno 500 de Receive.dll. Si se modifica el mensaje en la canalización, no estoy seguro de por qué Receive.dll no muestra un estado de 200.

¿Alguna sugerencia?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que ya has realizado muchas pruebas, por lo que es difícil sugerir cuál podría ser el problema. Podría estar relacionado con la configuración de IIS, la configuración de la canalización o la versión de ASP.NET. También podría estar relacionado con el mensaje en sí, ya que parece que el mensaje se está modificando en la canalización.

    Sería útil ver los registros de IIS para ver si hay información adicional que pueda ayudarte a identificar el problema. También podrías intentar utilizar una canalización diferente, como la canalización PassThruReceive, para ver si eso ayuda.

Comments are closed.