Problemas conocidos en BizTalk Server 2013

En este artículo se enumeran los problemas conocidos al usar Microsoft BizTalk Server 2013.

Versión del producto original:   BizTalk Server 2013
Número KB original:   2954101

Problemas conocidos en XSLCompiledTransform

BizTalk Server 2013 usa la clase .NET XslCompiledTransform para mejorar el rendimiento de la transformación. Hay algunas diferencias de comportamiento entre la XslCompiledTransform clase y la clase usada XslTransform anteriormente. Los siguientes son algunos problemas conocidos relacionados con esta diferencia y las soluciones recomendadas:

  • Cambio en el parámetro functoid Boolean de scripting

    Síntoma

    Cuando el nodo XML de entrada contiene cualquier valor que es false o el nodo XML de entrada está vacío, el parámetro Boolean de un scripting functoid es true.

  • No se admiten funciones privadas

    Síntoma

    Cuando se usa la función privada en un , se produce un error en la asignación functoid y se recibe el siguiente mensaje de error:

    No se puede llamar al método 'MyPrivateFunct' del objeto de extensión ' http://schemas.microsoft.com/BizTalk/2003/userCSharp ' porque no es público.

    La XslCompiledTransform clase solo admite llamar a métodos públicos. Esta limitación se documenta en Migración desde la clase XslTransform.

    Resolución

    Declare la función como pública en lugar de privada.

  • No se admite devolver null

    Síntoma

    Cuando se devuelve un valor nulo de un , se produce un error en la asignación functoid y se recibe el siguiente mensaje de error genérico:

    ExceptionType: Microsoft.XLANGs.Core.XTransformationFailureException

    Excepción: Error encontrado al ejecutar la transformación My.Map. Error:Transformation failed.

    Al probar el mismo mapa en Visual Studio, proporciona un mensaje de error más descriptivo:

    El destino de una invocación ha lanzado una excepción. Las funciones de extensión no pueden devolver valores nulos.

    La clase XslCompiledTransform no admite la devolución de valores nulos de las funciones a las que se llama dentro de la transformación.

    Resolución

    Devuelve String.Empty o algún otro valor alternativo para representar el escenario nulo. Si es necesario, use una variable global para que el valor nulo esté disponible en varias funciones.

  • Cambio en el parámetro functoid de XPathNodeIteraton scripting

    Síntoma

    Un XPathNodeIterator parámetro de un functoid de scripting usa el XPathArrayIterator tipo. En versiones BizTalk Server anterior, usaba el XPathSelectionIterator tipo. Debido a este cambio, el nodo. La llamada MoveNext() debe agregarse, como en el siguiente código, para evitar el siguiente mensaje de error:

    No se ha iniciado la enumeración. Llama a MoveNext.

    public static bool WriteNode(XPathNodeIterator node)
    {
      node.MoveNext(); //needs to be added in BizTalk Server 2013 to avoid error
      XPathNavigator xpn = node.Current;
      XmlDocument xdoc = new XmlDocument();
      xdoc.LoadXml(xpn.OuterXml);
      return true;
    }
    

    Resolución

    Llama a la MoveNext() función.

  • Las sobrecargas de funciones se diferencian por número de parámetros en lugar de por tipos.

    Síntoma

    Las siguientes sobrecargas de función contienen parámetros de diferentes tipos:

    public short MyOverloadedFunction(int testvalue)
    public short MyOverloadedFunction(string testvalue)
    

    Dado que estas sobrecargas de función tienen el mismo número de parámetros, si se usan en una transformación, se produce un error en la asignación y recibe el siguiente mensaje de error:

    Llamada al método ambiguo. Extension object ' http://schemas.microsoft.com/BizTalk/2003/ScriptNS0 ' contains multiple 'MyOverloadedFunction' methods that have 1 parameter(s).

    La XslCompiledTransform clase solo diferencia entre funciones en función del número de argumentos. Esta limitación se documenta en Migración desde la clase XslTransform.

    Resolución

    Asegúrese de que todas las sobrecargas de funciones contienen un número diferente de parámetros.

  • Volver a la XslTransform clase

    Puede configurar el motor de BizTalk Server de transformación de 2013 para que use la clase XslTransform anterior. No se recomienda este enfoque porque el entorno perderá las muchas mejoras de rendimiento y uso de memoria proporcionadas por la XslCompiledTransform clase. Además, la clase .NET XslTransform está en desuso. Por lo tanto, no se lanzarán nuevas actualizaciones ni correcciones para él.

Si no puede actualizar el mapa mediante las soluciones mencionadas anteriormente, este cambio se puede realizar agregando un DWORD con el valor 1 en UseXslTransform las siguientes ubicaciones:

  • Para instancias de host de BizTalk de 64 bits:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Server\3.0\Configuration

  • Para instancias de host de BizTalk de 32 bits y Visual Studio de mapa de prueba de Visual Studio:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\BizTalk Server\3.0\Configuration

Problemas conocidos en Enterprise single Sign-On (SSO)

Los siguientes son algunos problemas conocidos que son específicos del SSO en BizTalk Server 2013:

  • La actualización a BizTalk Server 2013 no actualiza SSO

    Síntoma

    Es posible que una actualización local de BizTalk Server 2009 o BizTalk Server 2010 a BizTalk Server 2013 no actualice SSO en el mismo equipo. Si este problema provoca que el servidor secreto principal de SSO no se actualice, cuando intente actualizar otros servidores de BizTalk en el grupo, recibirá el siguiente mensaje de error:

    Actualice el servidor secreto principal

    Cualquier componente de BizTalk Server que haga referencia a Microsoft.BizTalk.Interop.SSOClient.dll se produce un error y recibe el siguiente mensaje de error:

    No se pudo cargar el archivo o ensamblado 'Microsoft.BizTalk.Interop.SSOClient, Version=7.0.2300.0'

    Resolución

    Este problema se resuelve en versiones posteriores de los BizTalk Server 2013. Por lo tanto, asegúrese de actualizar con los medios disponibles más recientes.

  • No se puede cargar Microsoft.BizTalk.Interop.SSOClient.dll la versión 5.0.1.0

    Síntoma

    Puede recibir el siguiente mensaje de error en los siguientes escenarios:

    No se pudo cargar el archivo o ensamblado 'Microsoft.BizTalk.Interop.SSOClient.dll, Version=5.0.1.0'

    • El error lo produce una ubicación de recepción WCF o un puerto de envío WCF después de una actualización local de BizTalk Server 2009 o BizTalk Server 2010. Esto ocurre porque el archivo no se actualiza correctamente a Microsoft.BizTalk.Adapter.Wcf.Runtime.dll la versión 3.10.229.0.

      Resolución

      Si la versión de es anterior Microsoft.BizTalk.Adapter.Wcf.Runtime.dll a la 3.10.229.0, copie la versión correcta del archivo desde el medio de instalación de BizTalk Server 2013 (ubicado en ), pónlo en la carpeta de instalación de BizTalk Server y, a continuación, instálquelo en la caché global de ensamblados <DVD-Drive>\BizTalk Server\MSI\Program Files (GAC). Puede instalar el archivo .dll en la GAC mediante la herramienta gacutil.exe como se muestra a continuación:

      gacutil.exe /if Microsoft.BizTalk.Adapter.Wcf.Runtime.dll
      
    • El error se produce mediante código personalizado que se usa anteriormente en BizTalk Server 2009 o BizTalk Server 2010. Esto se debe BizTalk Server 2009 y BizTalk Server 2010 tienen .NET versión 5.0.1.0 del Microsoft.BizTalk.Interop.SSClient.dll archivo. Sin embargo, BizTalk Server 2013 usa .NET versión 7.0.2300.0 del archivo.

      Resolución

      Actualice y recompile el código personalizado para hacer referencia BizTalk Server versión de 2013 (7.0.2300.0) del Microsoft.BizTalk.Interop.SSClient.dll archivo. Si la reconstrucción no es una opción, redirija a la versión 7.0.2300.0 realizando la siguiente modificación en la sección del archivo de configuración <runtime>/<assemblyBinding> adecuado:

      <dependentAssembly>
          <assemblyIdentity name="Microsoft.BizTalk.Interop.SSOClient" publicKeyToken="31bf3856ad364e35" culture="neutral" />
          <bindingRedirect oldVersion="5.0.1.0" newVersion="7.0.2300.0"/>
      </dependentAssembly>
      
    • Microsoft BizTalk Enterprise Service Bus (ESB) produce el error debido a una dependencia de archivo incorrecta.

      Resolución

      Este problema se soluciona en BizTalk Server 2013 Actualización acumulativa 2 (CU2) y versiones posteriores.

      Para obtener más información acerca de este problema, vea FIX: Could not load file or assembly Microsoft.BizTalk.Interop.SSOClient Version=5.0.1.0 error when you use the ESB configuration tool in BizTalk Server 2013.

      Para obtener la actualización acumulativa más reciente para resolverla, vea Service Pack y listade actualizaciones acumulativas para BizTalk Server .

  • Error al cargar SSOPSServer.dll

    Síntoma

    Puede recibir el siguiente mensaje de error que se registra en los registros de eventos:

    Error al cargar \Program Files\Common Files\Enterprise Single Sign-On\SSOPSServer.dll Error code: 0x8007007E, no se pudo encontrar el módulo especificado.

    Resolución

    Este error es inofensivo y puede omitirse. Para evitar que se produzca este error, copie el archivo SSOPSServer.dll del medio de instalación original en la carpeta \Program Files\Common Files\Enterprise Single Sign-On del equipo. Para instalaciones de 64 bits de SSO, use el archivoSSOPSServer.dll desde en el medio \Platforms\SSO64\Files de instalación. Para instalaciones de 32 bits de SSO, use el archivo de \Platforms\SSO\Files .

  • Sso Secret de SSO de BizTalk no se puede usar Host Integration Server SSO de 2013

    Síntoma

    Cuando un Host Integration Server SSO de 2013 intenta obtener acceso a un servicio secreto principal de SSO de BizTalk Server 2013, se produce el siguiente mensaje de error:

    No se pudieron recuperar secretos maestros. Compruebe que el nombre del servidor secreto principal es correcto y que está disponible. Nombre del servidor secreto: Código de error de BTSSSOSERVER: 0x00000057, el parámetro es incorrecto.

    Resolución

    Host Integration Server 2013 incluye la versión 9.0.2096.0 de SSO. Sin embargo, BizTalk Server 2013 incluye la versión 9.0.1865.0. Debido a esto, en un entorno mixto en el que los servicios sso de los servidores de Host Integration Server y BizTalk tienen acceso a un servidor secreto principal compartido, el servidor debe ejecutar el servicio sso de Host Integration Server 2013. Tenga en cuenta que la instalación de Host Integration Server en un servidor de BizTalk actualizará el servicio SSO existente a la versión 9.0.2096.0 y requerirá que el servidor remoto de SSO secreto principal también se actualice a 9.0.2096.0.

Otros problemas conocidos

  • Actualizar a BizTalk Server 2013 no implementa nuevosMicrosoft.BizTalk.GlobalPropertySchemas.dll

    Síntoma

    Una actualización local de BizTalk Server 2009 o BizTalk Server 2010 a BizTalk Server 2013 no implementa correctamente el nuevo archivo en la base de Microsoft.BizTalk.GlobalPropertySchemas.dll BizTalkMgmtDb datos. Esto puede provocar errores cuando BizTalk tiene acceso a cualquiera de las nuevas propiedades globales. Esto puede ocurrir cuando se usa WCF.HttpHeaders , cualquier propiedad asociada con la propiedad , o cualquier otra propiedad SB-Messaging Adapter nueva. Los mensajes de error con los que SB-Messaging Adapter se produce un error junto con son los siguientes:

    El adaptador "SB-Messaging" ha producido un mensaje de error. Detalles "System.Runtime.InteropServices.COMException (0xC0C01620): Excepción de HRESULT: 0xC0C01620
    en Microsoft.BizTalk.TransportProxy.Interop.IBTTransportBatch.MoveToSuspendQ(IBaseMessage msg)
    en Microsoft.BizTalk.Adapter.Wcf.Runtime.Batch2.MoveToSuspendQ(IBaseMessage message, Object userData)
    en Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkReceiveBatch.SuspendMessageIfNeeded(IBaseMessage message, StreamAndUserData streamAndUserData, Int32 messageStatus)".
    El adaptador "SB-Messaging" ha producido un mensaje de error. Detalles "System.Exception: Error al cargar la lista de información de propiedades por espacio de nombres o no se encuentra la propiedad en la lista. Compruebe que el esquema se implementó correctamente.
    en Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkServiceInstance.EndOperation(resultado de IAsyncResult)
    at AsyncInvokeEndEndTwoWayMethod(Object , Object[] , IAsyncResult)
    en System.ServiceModel.Dispatcher.AsyncMethodInvoker.InvokeEnd(Object instance, Object[]& outputs, IAsyncResult result)
    en System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeEnd(MessageRpc& rpc)
    en System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage7(MessageRpc& rpc)
    en System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)"

    Resolución

    Use la herramienta AddGlobalPropertySchemas.exe para implementar manualmente el archivo .dll después de la actualización. Descargue la herramienta desde AddGlobalPropertySchemas.exe. Debe pasar el nombre del servidor de base de datos de administración de BizTalk y el nombre de la base de datos de la siguiente manera:

    AddGlobalPropertySchemas.exe /server:MyServer /database:BizTalkMgmtDb
    

    Nota

    Si la base de datos se encuentra en una instancia con nombre de SQL Server, especifique MyServer\MyInstance en lugar de solo MyServer.

  • El archivo de configuración de ESB 2.2 provoca errores de ESB

    Síntoma

    ESB Toolkit 2.2 usa Unity 2.0 que requiere modificaciones en el archivo esb.config predeterminado. Sin estas modificaciones, pueden producirse los siguientes problemas:

    • Se produce un error en la configuración de ESB 2.2 y recibe el siguiente mensaje de error:

      Excepción que llama a "PushAllConfiguration" con argumentos "6": "Elemento no reconocido 'typeConfig'. (C:\Archivos de programa (x86)\Microsoft BizTalk ESB Toolkit\esb.config línea 151)

    • Cuando se usa la canalización de recepción para llamar al motor de reglas de negocio para seleccionar dinámicamente un itinerario (mediante el solucionador BRI de ESB), se produce el ItinerarySelectReceiveXML siguiente error:

      El destino de una invocación ha lanzado una excepción.
      Origen: Microsoft.Practices.ESB.Resolver.ResolverMgr
      Método: System.Collections.Generic.Dictionary'2[System.String,System.String] Resolve(Microsoft.Practices.ESB.Resolver.ResolverInfo, Microsoft.BizTalk.Message.Interop.IBaseMessage, Microsoft.BizTalk.Component.Interop.IPipelineContext)
      Origen de error: mscorlib
      Error TargetSite: System.Object InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
      Error StackTrace: en System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
      en System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
      en System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
      en System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
      en System.Activator.CreateInstance(Type type, Object[] args)
      en Microsoft.Practices.ESB.Resolver.ResolverFactory.Create(String key)
      en Microsoft.Practices.ESB.Resolver.ResolverMgr.GetResolver(ResolverInfo info)
      en Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve(ResolverInfo info, IBaseMessage message, IPipelineContext pipelineContext)

    Resolución

    Para obtener más información acerca de este problema e instrucciones sobre cómo modificar el archivo esb.config para resolverlo, vea ESB Toolkit BRE Itinerary Resolver fails with Exception y ESB Configuration fails with Unrecognized element 'typeConfig'.

  • EDIFACT mensaje que tiene un segmento UNB 3.3 se suspende

    Síntoma

    Después de actualizar a BizTalk Server 2013, se produce un error en un mensaje que contiene un segmento EDIFACT UNB 3.3 y recibe el siguiente mensaje de error. Este mismo EDIFACT mensaje procesado sin problemas en BizTalk Server 2010:

    Error al cargar la lista de información de propiedades por espacio de nombres o no se encuentra la propiedad en la lista. Compruebe que el esquema se implementó correctamente.

    Resolución

    Reinicie la instancia de host relevante mediante los pasos siguientes:

    • En BizTalk Server de administración, vaya a BizTalk Group > Applications > BizTalk EDI Applications > Resources.
    • Haga clic con el botón secundario en Recursos y, a continuación, haga clic en Agregar > ensamblados de BizTalk.
    • En la ventana Agregar recursos, haga clic en Agregar, seleccione el archivo Microsoft.BizTalk.Edi.BaseArtifacts.dll (la ubicación predeterminada es ) y, a continuación, haga clic C:\Program Files (x86)\Microsoft BizTalk Server 2013 en Abrir.
    • Active la casilla Sobrescribir todo.
    • Active la casilla Agregar a la memoria caché global de ensamblados al agregar recurso y, a continuación, haga clic en Aceptar.