Bekannte Probleme in BizTalk Server 2013
In diesem Artikel werden die bekannten Probleme bei der Verwendung von Microsoft BizTalk Server 2013 aufgeführt.
Ursprüngliche Produktversion: BizTalk Server 2013
Ursprüngliche KB-Nummer: 2954101
Bekannte Probleme in XSLCompiledTransform
BizTalk Server 2013 verwendet die XslCompiledTransform .NET-Klasse für eine bessere Transformationsleistung. Es gibt einige Unterschiede im Verhalten zwischen der XslCompiledTransform Klasse und der zuvor verwendeten XslTransform Klasse. Es folgen einige bekannte Probleme im Zusammenhang mit diesem Unterschied und die empfohlenen Lösungen:
Ändern des
functoidbooleschen SkriptparametersSymptom
Wenn der Eingabe-XML-Knoten einen Wert enthält, der "false" ist oder der Eingabe-XML-Knoten leer ist, ist der boolesche Parameter in einem Skript
functoid"true".Private Funktionen werden nicht unterstützt.
Symptom
Wenn Sie eine private Funktion in einer
functoidverwenden, schlägt die Karte fehl, und Sie erhalten die folgende Fehlermeldung:Methode 'MyPrivateFunct' des Erweiterungsobjekts ' http://schemas.microsoft.com/BizTalk/2003/userCSharp ' kann nicht aufgerufen werden, da es nicht öffentlich ist.
Die
XslCompiledTransformKlasse unterstützt nur das Aufrufen öffentlicher Methoden. Diese Einschränkung ist bei Migrating From the XslTransform Classdokumentiert.Lösung
Deklarieren Sie die Funktion als öffentlich statt als privat.
Das Zurückgeben von NULL wird nicht unterstützt.
Symptom
Wenn Sie einen NULL-Wert aus einem
functoidzurückgeben, schlägt die Zuordnung fehl, und Sie erhalten die folgende generische Fehlermeldung:ExceptionType: Microsoft.XLANGs.Core.XTransformationFailureException
Ausnahme: Fehler beim Ausführen der Transformation My.Map. Fehler:Transformation fehlgeschlagen.
Wenn Sie dieselbe Karte in Visual Studio testen, wird eine beschreibendere Fehlermeldung angezeigt:
Die Ausnahme wurde vom Ziel eines Aufrufs ausgelöst. Erweiterungsfunktionen können keine NULL-Werte zurückgeben.
Die XslCompiledTransform-Klasse unterstützt nicht das Zurückgeben von NULL-Werten aus Funktionen, die innerhalb der Transformation aufgerufen werden.
Lösung
Zurückgeben
String.Emptyoder ein anderer alternativer Wert, der das NULL-Szenario darstellt. Wenn dies erforderlich ist, verwenden Sie eine globale Variable, um den NULL-Wert über mehrere Funktionen hinweg verfügbar zu machen.Änderung des Scripting-Functoid-Parameters
XPathNodeIteratonSymptom
Ein
XPathNodeIteratorParameter in einem Skript-Functoid verwendet denXPathArrayIteratorTyp. In früheren BizTalk Server Versionen wurde derXPathSelectionIteratorTyp verwendet. Aufgrund dieser Änderung wird der Knoten angezeigt. Der MoveNext()-Aufruf muss wie im folgenden Code hinzugefügt werden, um die folgende Fehlermeldung zu vermeiden:Enumeration wurde nicht gestartet. Rufen Sie MoveNext auf.
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; }Lösung
Rufen Sie die
MoveNext()Funktion auf.Funktionsüberladungen werden durch die Anzahl der Parameter anstelle von Typen unterschieden.
Symptom
Die folgenden Funktionsüberladungen enthalten Parameter unterschiedlicher Typen:
public short MyOverloadedFunction(int testvalue) public short MyOverloadedFunction(string testvalue)Da diese Funktionsüberladungen beide die gleiche Anzahl von Parametern haben, schlägt die Zuordnung fehl, wenn sie in einer Transformation verwendet werden, und Sie erhalten die folgende Fehlermeldung:
Mehrdeutiger Methodenaufruf. Extension-Objekt http://schemas.microsoft.com/BizTalk/2003/ScriptNS0 ' ' enthält mehrere 'MyOverloadedFunction'-Methoden mit 1 Parametern.
Die
XslCompiledTransformKlasse unterscheidet nur zwischen Funktionen basierend auf der Anzahl der Argumente. Diese Einschränkung ist bei Migrating From the XslTransform Classdokumentiert.Lösung
Stellen Sie sicher, dass alle Funktionsüberladungen eine andere Anzahl von Parametern enthalten.
Zurückfallen auf die
XslTransformKlasseSie können das BizTalk Server 2013-Transformationsmodul so konfigurieren, dass es die ältere
XslTransformKlasse verwendet. Dieser Ansatz wird nicht empfohlen, da die Umgebung die vielen Leistungs- und Speicherauslastungsverbesserungen derXslCompiledTransformKlasse verliert. Außerdem ist dieXslTransform.NET-Klasse veraltet. Daher werden keine neuen Updates oder Fixes für sie veröffentlicht.
Wenn Sie die Karte nicht mithilfe der oben genannten Lösungen aktualisieren können, kann diese Änderung vorgenommen werden, indem Sie an den folgenden Speicherorten einen UseXslTransform DWORD-Wert von 1 hinzufügen:
Für 64-Bit-BizTalk-Hostinstanzen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Server\3.0\ConfigurationFür 32-Bit-BizTalk-Hostinstanzen und die Testzuordnungsfunktionalität von Visual Studio:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\BizTalk Server\3.0\Configuration
Bekannte Probleme in Enterprise Single Sign-On (SSO)
Nachfolgend sind einige bekannte Probleme aufgeführt, die für SSO am BizTalk Server 2013 spezifisch sind:
Upgrade auf BizTalk Server 2013 führt kein Upgrade von SSO durch
Symptom
Bei einem direkten Upgrade von BizTalk Server 2009 oder BizTalk Server 2010 auf BizTalk Server 2013 wird SSO möglicherweise nicht auf demselben Computer aktualisiert. Wenn dieses Problem dazu führt, dass der geheime SSO-Hauptserver nicht aktualisiert wird, wird beim Versuch, andere BizTalk-Server in der Gruppe zu aktualisieren, die folgende Fehlermeldung angezeigt:
Aktualisieren Des geheimen Hauptservers
Jede Komponente von BizTalk Server, die auf Microsoft.BizTalk.Interop.SSOClient.dll verweist, schlägt fehl, und Sie erhalten die folgende Fehlermeldung:
Datei oder Assembly 'Microsoft.BizTalk.Interop.SSOClient, Version=7.0.2300.0' konnte nicht geladen werden.
Lösung
Dieses Problem wurde in späteren Versionen des BizTalk Server 2013-Mediums behoben. Stellen Sie daher sicher, dass Sie ein Upgrade durchführen, indem Sie die neuesten verfügbaren Medien verwenden.
Microsoft.BizTalk.Interop.SSOClient.dllVersion 5.0.1.0 kann nicht geladen werdenSymptom
In den folgenden Szenarien wird möglicherweise die folgende Fehlermeldung angezeigt:
Datei oder Assembly 'Microsoft.BizTalk.Interop.SSOClient.dll, Version=5.0.1.0' konnte nicht geladen werden.
Der Fehler wird von einem WCF-Empfangsspeicherort oder WCF-Sendeport nach einem direkten Upgrade von BizTalk Server 2009 oder BizTalk Server 2010 ausgelöst. Dies geschieht, weil die
Microsoft.BizTalk.Adapter.Wcf.Runtime.dllDatei nicht ordnungsgemäß auf Version 3.10.229.0 aktualisiert wird.Lösung
If the version of
Microsoft.BizTalk.Adapter.Wcf.Runtime.dllis earlier than 3.10.229.0, copy the correct version of the file from the BizTalk Server 2013 installation media (located in<DVD-Drive>\BizTalk Server\MSI\Program Files), put it in the BizTalk Server installation folder, and then install it into the Global Assembly Cache (GAC). Sie können die .dll-Datei im GAC installieren, indem Sie das gacutil.exe-Tool wie folgt verwenden:gacutil.exe /if Microsoft.BizTalk.Adapter.Wcf.Runtime.dllDer Fehler wird durch benutzerdefinierten Code ausgelöst, der zuvor in BizTalk Server 2009 oder BizTalk Server 2010 verwendet wurde. Dies liegt daran, dass BizTalk Server 2009 und BizTalk Server 2010 .NET Version 5.0.1.0 der
Microsoft.BizTalk.Interop.SSClient.dllDatei haben. BizTalk Server 2013 verwendet jedoch .NET Version 7.0.2300.0 der Datei.Lösung
Aktualisieren und erstellen Sie den benutzerdefinierten Code neu, um auf die BizTalk Server 2013-Version (7.0.2300.0) der Datei zu
Microsoft.BizTalk.Interop.SSClient.dllverweisen. Wenn die Neuerstellung keine Option ist, führen Sie eine Umleitung zu Version 7.0.2300.0 durch, indem Sie die folgende Änderung am<runtime>/<assemblyBinding>Abschnitt der entsprechenden Konfigurationsdatei vornehmen:<dependentAssembly> <assemblyIdentity name="Microsoft.BizTalk.Interop.SSOClient" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="5.0.1.0" newVersion="7.0.2300.0"/> </dependentAssembly>Der Fehler wird von Microsoft BizTalk Enterprise Service Bus (ESB) aufgrund einer falschen Dateiabhängigkeit ausgelöst.
Lösung
This issue is fixed in BizTalk Server 2013 Cumulative Update 2 (CU2) and later versions.
Weitere Informationen zu diesem Problem finden Sie unter FIX: Fehler "Datei oder Assembly Microsoft.BizTalk.Interop.SSOClient Version=5.0.1.0" konnte nicht geladen werden, wenn Sie das ESB-Konfigurationstool in BizTalk Server 2013 verwenden.
Informationen zum Abrufen des neuesten kumulativen Updates zum Beheben finden Sie in Service Pack und der Liste der kumulativen Updates für BizTalk Server.
Fehler beim Laden SSOPSServer.dll
Symptom
Möglicherweise wird die folgende Fehlermeldung angezeigt, die in den Ereignisprotokollen protokolliert wird:
Fehler beim Laden von \Program Files\Common Files\Enterprise Single Sign-On\SSOPSServer.dll Error code: 0x8007007E, The specified module could not be found.
Lösung
Dieser Fehler ist unschädlich und kann ignoriert werden. Um zu verhindern, dass dieser Fehler weiterhin auftritt, kopieren Sie die SSOPSServer.dll Datei vom ursprünglichen Installationsmedium in den
\Program Files\Common Files\Enterprise Single Sign-OnOrdner auf dem Computer. Verwenden Sie für 64-Bit-Installationen von SSO die SSOPSServer.dll-Datei\Platforms\SSO64\Filesauf dem Installationsmedium. Verwenden Sie für 32-Bit-Installationen von SSO die Datei von\Platforms\SSO\Files.BizTalk SSO Master Secret cannot be used by Host Integration Server 2013 SSO
Symptom
Wenn ein Host Integration Server 2013 SSO-Dienst versucht, auf einen BizTalk Server 2013 SSO Master Secret Service zuzugreifen, wird die folgende Fehlermeldung ausgelöst:
Geheime Hauptschlüssel konnten nicht abgerufen werden. Stellen Sie sicher, dass der Name des geheimen Hauptschlüsselservers korrekt und verfügbar ist. Name des geheimen Servers: BTSSSOSERVER-Fehlercode: 0x00000057, der Parameter ist falsch.
Lösung
Host Integration Server 2013 enthält Version 9.0.2096.0 von SSO. BizTalk Server 2013 enthält jedoch Version 9.0.1865.0. Aus diesem Grund muss der Server in einer gemischten Umgebung, in der SSO-Dienste auf Host Integration Server- und BizTalk-Servern auf einen freigegebenen geheimen Hauptserver zugreifen, den SSO-Dienst Host Integration Server 2013 ausführen. Beachten Sie, dass durch die Installation von Host Integration Server auf einem BizTalk-Server der vorhandene SSO-Dienst auf Version 9.0.2096.0 aktualisiert wird und der SSO-Remoteserver für geheime Schlüssel ebenfalls auf 9.0.2096.0 aktualisiert werden muss.
Andere bekannte Probleme
Upgrade auf BizTalk Server 2013 wird nicht neu bereitgestellt
Microsoft.BizTalk.GlobalPropertySchemas.dllSymptom
Ein direktes Upgrade von BizTalk Server 2009 oder BizTalk Server 2010 auf BizTalk Server 2013 stellt die neue Datei nicht ordnungsgemäß
Microsoft.BizTalk.GlobalPropertySchemas.dllin derBizTalkMgmtDbDatenbank bereit. Dies kann zu Fehlern führen, wenn BizTalk auf eine der neuen globalen Eigenschaften zugreift. Dies kann auftreten, wenn Sie eine der eigenschaftWCF.HttpHeaderszugeordnete EigenschaftSB-Messaging Adapteroder eine andere neue Eigenschaft verwenden. Die Fehlermeldungen, mit denen derSB-Messaging AdapterFehler zusammen auftritt, sind folgende:Der Adapter "SB-Messaging" hat eine Fehlermeldung ausgelöst. Details "System.Runtime.InteropServices.COMException (0xC0C01620): Ausnahme von HRESULT: 0xC0C01620
at Microsoft.BizTalk.TransportProxy.Interop.IBTTransportBatch.MoveToSuspendQ(IBaseMessage msg)
at Microsoft.BizTalk.Adapter.Wcf.Runtime.Batch2.MoveToSuspendQ(IBaseMessage message, Object userData)
at Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkReceiveBatch.SuspendMessageIfNeeded(IBaseMessage message, StreamAndUserData streamAndUserData, Int32 messageStatus)".
Der Adapter "SB-Messaging" hat eine Fehlermeldung ausgelöst. Details "System.Exception: Loading property information list by namespace failed or property not found in the list. Stellen Sie sicher, dass das Schema ordnungsgemäß bereitgestellt wurde.
at Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkServiceInstance.EndOperation(IAsyncResult result)
at AsyncInvokeEndEndTwoWayMethod(Object , Object[] , IAsyncResult)
at System.ServiceModel.Dispatcher.AsyncMethodInvoker.InvokeEnd(Object instance, Object[]& outputs, IAsyncResult result)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeEnd(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage7(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)"Lösung
Verwenden Sie das tool AddGlobalPropertySchemas.exe, um die .dll Datei nach dem Upgrade manuell bereitzustellen. Laden Sie das Tool aus AddGlobalPropertySchemas.exeherunter. Sie müssen den Namen des BizTalk-Verwaltungsdatenbankservers und den Datenbanknamen wie folgt übergeben:
AddGlobalPropertySchemas.exe /server:MyServer /database:BizTalkMgmtDbHinweis
Wenn sich die Datenbank in einer benannten Instanz von SQL Server befindet, geben Sie "MyServer\MyInstance" anstelle von "MyServer" an.
Die ESB 2.2-Konfigurationsdatei verursacht ESB-Fehler.
Symptom
ESB Toolkit 2.2 verwendet Unity 2.0, das Änderungen an der Standarddatei esb.config erfordert. Ohne diese Änderungen können die folgenden Probleme auftreten:
Esb 2.2-Konfiguration schlägt fehl, und Sie erhalten die folgende Fehlermeldung:
Ausnahmeaufruf "PushAllConfiguration" mit "6" Argument(n): "Unrecognized element 'typeConfig'. (C:\Programme (x86)\Microsoft BizTalk ESB Toolkit\esb.config Zeile 151)
Wenn die
ItinerarySelectReceiveXMLEmpfangspipeline verwendet wird, um das Geschäftsregelmodul aufzurufen, um eine Reiseroute dynamisch auszuwählen (mithilfe des ESB BRI Resolver), wird der folgende Fehler ausgelöst:Die Ausnahme wurde vom Ziel eines Aufrufs ausgelöst.
Quelle: Microsoft.Practices.ESB.Resolver.ResolverMgr
Methode: 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)
Fehlerquelle: mscorlib
Error TargetSite: System.Object InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
Error StackTrace: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at Microsoft.Practices.ESB.Resolver.ResolverFactory.Create(String key)
at Microsoft.Practices.ESB.Resolver.ResolverMgr.GetResolver(ResolverInfo info)
at Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve(ResolverInfo info, IBaseMessage message, IPipelineContext pipelineContext)
Lösung
Weitere Informationen zu diesem Problem und Anweisungen zum Ändern der esb.config-Datei, um sie zu beheben, finden Sie unter ESB Toolkit BRE Itinerary Resolver Fails with Exception and ESB Configuration fails with Unrecognized element 'typeConfig'.
EDIFACTNachricht mit UNB 3.3-Segment wird angehaltenSymptom
Nach dem Upgrade auf BizTalk Server 2013 schlägt eine Meldung mit
EDIFACTeinem UNB 3.3-Segment fehl, und Sie erhalten die folgende Fehlermeldung. DieselbeEDIFACTNachricht, die in BizTalk Server 2010 ohne Probleme verarbeitet wurde:Beim Laden der Eigenschafteninformationsliste nach Namespace ist ein Fehler aufgetreten, oder die Eigenschaft wurde in der Liste nicht gefunden. Stellen Sie sicher, dass das Schema ordnungsgemäß bereitgestellt wurde.
Lösung
Starten Sie die relevante Hostinstanz mit den folgenden Schritten neu:
- Navigieren Sie in BizTalk Server Verwaltungskonsole zu BizTalk Group > Applications > BizTalk CER Applications > Resources.
- Klicken Sie mit der rechten Maustaste auf "Ressourcen", und klicken Sie dann auf > "BizTalk-Assemblys hinzufügen".
- Klicken Sie im Fenster "Ressourcen hinzufügen" auf "Hinzufügen", wählen Sie die Microsoft.BizTalk.Edi.BaseArtifacts.dll Datei aus (der Standardspeicherort ist
C:\Program Files (x86)\Microsoft BizTalk Server 2013), und klicken Sie dann auf "Öffnen". - Aktivieren Sie das Kontrollkästchen "Alle überschreiben".
- Aktivieren Sie das Kontrollkästchen "Zum globalen Assemblycache hinzufügen" beim Hinzufügen von Ressourcen, und klicken Sie dann auf "OK".