Compartir vía


Planificación del consumo de servicios web

El planeamiento de servicios web se puede dividir en dos categorías, planear la publicación de servicios web y planear el consumo de servicios web. En este tema se describen las consideraciones para consumir servicios web. Para obtener información sobre la publicación de servicios web, vea Planning for Publishing Web Services1.

Tenga en cuenta lo siguiente al crear el plan:

  • Usar dos caracteres de subrayado en un nombre de parámetro

    Los nombres de parámetros de métodos Web no pueden empezar con "__" (dos caracteres de subrayado). Es posible que los nombres que empiezan con dos caracteres de subrayado creen entidades de mensajes Web que no son compatibles (inutilizables) en XLANG/s.

  • El elemento Any y los atributos anyAttribute no se admiten en métodos web

    No puede usar ningún elemento ni atributo anyAttribute en el esquema de un método Web.

  • Uso de palabras clave XLANG/s

    Un nombre de servicio web o un nombre de método web no puede ser una palabra clave en un XLANG/s. Si usa una palabra clave XLANG/s en el nombre del servicio web o el nombre del método web, recibirá un error de compilación al agregar el servicio web. Para obtener una lista de palabras reservadas para el idioma XLANG/s, consulte las palabras reservadas de XLANG/s (https://go.microsoft.com/fwlink/?LinkId=155765).

  • Compatibilidad necesaria con XLANG/s para tipos de parámetros

    El uso de tipos de parámetros de método web no XLANG/s admitidos provocará errores de compilación. Por ejemplo, BizTalk Server no es compatible con un parámetro compuesto por una matriz de dimensión de tipos de esquemas. Además, BizTalk Server no admite matrices multidimensionales. Para obtener una lista de palabras que el idioma XLANG/s reserva en BizTalk Server, vea Palabras reservadas de XLANG/s (https://go.microsoft.com/fwlink/?LinkId=155765).

  • Evitar errores de compilación causados por la adición de referencias web que contienen palabras clave o identificadores de C#

    Al usar agregar referencia webpara agregar referencias web a proyectos de BizTalk, BizTalk Server convierte los tipos de esquema necesarios para llamar a cada método web a esquemas. BizTalk Server agrega estos esquemas a Reference.xsd. Si los esquemas contienen nombres de elemento que son palabras clave de C# o el nombre del elemento no es válido como identificador de C#, puede obtener un error en tiempo de ejecución. Para evitar que se produzcan errores en tiempo de ejecución, asegúrese de que el servicio Web que consume no contiene nombres de elementos que sean palabras clave C# o identificadores C# no válidos.

  • No se admiten varias definiciones de tipo de servicio o puerto

    BizTalk Server admite que se agregue un archivo de servicio Web con una única definición de tipo de puerto y de servicio. Si agrega un archivo WSDL con varias definiciones de tipo de puerto o de servicio, es posible que reciba el siguiente error:

    Could not generate BizTalk files. Object reference not set to an instance of an object.

  • Compatibilidad con el consumo de matrices expuestas por servicios web

    BizTalk Server pueden consumir matrices unidimensionales y irregulares expuestas por servicios web que no son BizTalk Server servicios web. Para obtener más información sobre cómo consumir matrices de servicios web, consulte Consumo de matrices de servicio web (https://go.microsoft.com/fwlink/?LinkId=155766).

    Nota

    No se permite la sintaxis de matrices multidimensionales. Por ejemplo, MyArray[1,5].

    Nota

    BizTalk Server no admite el consumo de una matriz de objetos DataSet expuestos por un servicio web. El subservicio XLANG/s admite de forma nativa la clase DataSet de .NET, pero si crea un proyecto de BizTalk que contiene una referencia web a un servicio web que expone una matriz de objetos DataSet de .NET, obtendrá errores al intentar compilar el proyecto.

  • Los parámetros del método web deben ser serializables xml

    Todos los parámetros de un servicio Web consumido deben ser serializables con Xml. Si agrega un método Web que contenga un parámetro que no es serializable con Xml, es posible que reciba el siguiente mensaje de error:

    System.Xml.Element debe ser serializable con Xml para ser un tipo de parte de mensaje.

    Nota

    Se admiten los tipos de datos , XmlDocument y DataSet, aunque no se pueden serializar xml.

  • Consumo de servicios web de Messaging-Only

    Al consumir servicios web solo de mensajería, todos los nombres de elementos del cuerpo del mensaje BizTalk Server deben coincidir con los nombres de parámetros del método web. Por ejemplo, si la firma del servicio web es WebMethod(MyType1 type1, MyType2 type2), el nombre del elemento debe ser type1 y type2, puede obtener el siguiente error en tiempo de ejecución:

    Failed to retrieve the message part for parameter %1

    Para obtener más información, vea Cómo consumir servicios web en un escenario de Messaging-Only (https://go.microsoft.com/fwlink/?LinkId=155767).

  • Configurar un puerto de envío SOAP mediante programación

    Es posible establecer propiedades de configuración mediante programación en el contexto del mensaje. Puede establecer estas propiedades en una orquestación o en un componente de canalización personalizado si el puerto de envío es estático o dinámico.

    Nota

    Para configurar la propiedad MethodName para el puerto de envío SOAP estático mediante programación, debe establecer el nombre del método en [Especificar más adelante] en la pestaña Servicio web del cuadro de diálogo Propiedades de transporte SOAP en la consola de administración de BizTalk Server.

    Para obtener más información sobre la propiedad MethodName , vea How to Dynamically Set the URI of a Consumed Web Service (https://go.microsoft.com/fwlink/?LinkID=155768).

  • Reglas de propiedades

    Si la propiedad de configuración se establece en una orquestación o en un componente de canalización personalizado de una canalización de recepción, se aplican las siguientes reglas:

    • Si se envía un mensaje a un puerto de envío estático, el valor de la propiedad se sobrescribirá con el valor configurado para dicho puerto de envío.

    • Si el mensaje se envía a un puerto de envío dinámico, el valor de la propiedad no se sobrescribirá.

      Si una propiedad de configuración se establece en un componente de canalización personalizado de una canalización de envío, se aplica la siguiente regla:

    • El valor no se sobrescribirá independientemente de que el mensaje se envíe a un puerto de envío estático o dinámico. En otras palabras, los componentes de canalización de envío sobrescriben la propiedad de configuración sin tener en cuenta dónde se ha definido.

    • Para obtener más información sobre los componentes de canalización personalizados, consulte Desarrollo de componentes de canalización personalizados (https://go.microsoft.com/fwlink/?LinkId=155769).

    • Para obtener más información sobre las propiedades de configuración del adaptador de envío SOAP, vea How to Dynamically Set the URI of a Consumed Web Service (https://go.microsoft.com/fwlink/?LinkID=155768).

  • Agregar una referencia web a un servicio web consumido que contenga un esquema de raíz múltiple provocará un error de compilación

    Si agrega una referencia web al proyecto para un servicio web derivado de una orquestación de BizTalk publicada y la orquestación contiene un esquema con varias raíces, se producirá un error cuando se compile el proyecto. Si agrega una referencia Web al proyecto que se ha derivado de una orquestación de BizTalk publicada, asegúrese de que la orquestación no contiene esquemas multiraíces.

  • Usar TypedDataSets como parámetros para métodos web

    A continuación, se muestran los pasos necesarios para permitir que se utilice TypedDataSets como parámetros en métodos Web:

    1. Agregue la referencia Web a un proyecto C# y genere el proxy.

    2. Cree un puerto de envío SOAP y especifique el proxy en el puerto de envío y seleccione el método.

    3. En la orquestación, defina un puerto enlazado en tiempo de ejecución y los tipos de mensajes. En la mayoría de los casos en los que no se necesita ninguna promoción de propiedades o acceso a campos distintivos, el tipo se puede definir como XMLDocument. Seleccione las canalizaciones PassThrough con este tipo.

    4. En la consola de administración de BizTalk Server, en la pestaña Servicio web del cuadro de diálogo Propiedades de transporte SOAP del puerto de envío SOAP, especifique que desea usar ese proxy que creó. También será necesario especificar el ensamblado, tipo y método.

  • Agregar una referencia web a un servicio web consumido que contiene un método web que espera parámetros de Generic-Based provocará un error de compilación.

    Si agrega una referencia web al proyecto para un servicio web que contiene un método web que espera parámetros basados en genéricos, como parámetros que aceptan valores NULL, se producirá un error cuando se compile el proyecto. Esto no se admite. Debe utilizar especialización explícita para llamar a la clase genérica de XLANG/s.

  • Generación de esquemas de BizTalk mediante la adición de referencia web

    Al usar agregar referencia webpara agregar referencias web a proyectos de BizTalk, BizTalk Server convierte los tipos de esquema necesarios para llamar a cada método web a esquemas. BizTalk Server agrega estos esquemas a Reference.xsd. Para asegurarse de que agregar referencia web genera correctamente los esquemas de BizTalk, los servicios web deben cumplir las siguientes directrices:

    • Los métodos web deben tener SoapDocumentMethodAttribute en lugar de SoapRpcMethodAttribute.

    • Los servicios web y los métodos deben usar el enlace literal en lugar de codificado como [SoapDocumentMethod(Use=SoapBindingUse.Literal)].

    • Los parámetros de método web y los tipos de valor devuelto deben tener XmlRootAttribute con una propiedad Namespace válida a menos que sean tipos XSD nativos y el tipo XmlNode.

    • Los métodos web no deben usar las propiedades RequestNamespace y ResponseNamespace en SoapDocumentMethodAttribute.

    • Los servicios Web deben ser compatibles con la versión 1.1 del perfil básico de Interoperabilidad de servicios Web (WSI).

  • La referencia web add no admite el elemento import del lenguaje de descripción de servicios web (WSDL)

    Se ha producido un error en la opción Agregar referencia Web al agregar referencias Web para el archivo WSDL con el elemento de importación.

Consulte también

Planificación del nivel de BizTalk Server