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
functoidBoolean de scriptingSí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
functoides 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
functoidy 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
XslCompiledTransformclase 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
functoidy 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.Emptyo 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
XPathNodeIteratonscriptingSíntoma
Un
XPathNodeIteratorparámetro de un functoid de scripting usa elXPathArrayIteratortipo. En versiones BizTalk Server anterior, usaba elXPathSelectionIteratortipo. 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
XslCompiledTransformclase 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
XslTransformclasePuede configurar el motor de BizTalk Server de transformación de 2013 para que use la clase
XslTransformanterior. No se recomienda este enfoque porque el entorno perderá las muchas mejoras de rendimiento y uso de memoria proporcionadas por laXslCompiledTransformclase. Además, la clase .NETXslTransformestá 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\ConfigurationPara 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.dllla versión 5.0.1.0Sí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.dllla versión 3.10.229.0.Resolución
Si la versión de es anterior
Microsoft.BizTalk.Adapter.Wcf.Runtime.dlla 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.dllEl 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.dllarchivo. 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.dllarchivo. 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-Ondel equipo. Para instalaciones de 64 bits de SSO, use el archivoSSOPSServer.dll desde en el medio\Platforms\SSO64\Filesde 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 nuevos
Microsoft.BizTalk.GlobalPropertySchemas.dllSí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.dllBizTalkMgmtDbdatos. Esto puede provocar errores cuando BizTalk tiene acceso a cualquiera de las nuevas propiedades globales. Esto puede ocurrir cuando se usaWCF.HttpHeaders, cualquier propiedad asociada con la propiedad , o cualquier otra propiedadSB-Messaging Adapternueva. Los mensajes de error con los queSB-Messaging Adapterse 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:BizTalkMgmtDbNota
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
ItinerarySelectReceiveXMLsiguiente 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'.
EDIFACTmensaje que tiene un segmento UNB 3.3 se suspendeSíntoma
Después de actualizar a BizTalk Server 2013, se produce un error en un mensaje que contiene un segmento
EDIFACTUNB 3.3 y recibe el siguiente mensaje de error. Este mismoEDIFACTmensaje 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 2013en 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.