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 functoid booleschen Skriptparameters

    Symptom

    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 functoid verwenden, 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 XslCompiledTransform Klasse 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 functoid zurü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.Empty oder 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 XPathNodeIteraton

    Symptom

    Ein XPathNodeIterator Parameter in einem Skript-Functoid verwendet den XPathArrayIterator Typ. In früheren BizTalk Server Versionen wurde der XPathSelectionIterator Typ 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 XslCompiledTransform Klasse 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 XslTransform Klasse

    Sie können das BizTalk Server 2013-Transformationsmodul so konfigurieren, dass es die ältere XslTransform Klasse verwendet. Dieser Ansatz wird nicht empfohlen, da die Umgebung die vielen Leistungs- und Speicherauslastungsverbesserungen der XslCompiledTransform Klasse verliert. Außerdem ist die XslTransform .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\Configuration

  • Fü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 werden

    Symptom

    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.dll Datei nicht ordnungsgemäß auf Version 3.10.229.0 aktualisiert wird.

      Lösung

      If the version of Microsoft.BizTalk.Adapter.Wcf.Runtime.dll is 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.dll
      
    • Der 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.dll Datei 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.dll verweisen. 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-On Ordner auf dem Computer. Verwenden Sie für 64-Bit-Installationen von SSO die SSOPSServer.dll-Datei \Platforms\SSO64\Files auf 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 bereitgestelltMicrosoft.BizTalk.GlobalPropertySchemas.dll

    Symptom

    Ein direktes Upgrade von BizTalk Server 2009 oder BizTalk Server 2010 auf BizTalk Server 2013 stellt die neue Datei nicht ordnungsgemäß Microsoft.BizTalk.GlobalPropertySchemas.dll in der BizTalkMgmtDb Datenbank bereit. Dies kann zu Fehlern führen, wenn BizTalk auf eine der neuen globalen Eigenschaften zugreift. Dies kann auftreten, wenn Sie eine der eigenschaft WCF.HttpHeaders zugeordnete Eigenschaft SB-Messaging Adapter oder eine andere neue Eigenschaft verwenden. Die Fehlermeldungen, mit denen der SB-Messaging Adapter Fehler 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:BizTalkMgmtDb
    

    Hinweis

    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 ItinerarySelectReceiveXML Empfangspipeline 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'.

  • EDIFACT Nachricht mit UNB 3.3-Segment wird angehalten

    Symptom

    Nach dem Upgrade auf BizTalk Server 2013 schlägt eine Meldung mit EDIFACT einem UNB 3.3-Segment fehl, und Sie erhalten die folgende Fehlermeldung. Dieselbe EDIFACT Nachricht, 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".