Συμπτώματα
Η παρακάτω εξαίρεση με ESB 2.2 στο Microsoft BizTalk Server 2013 όταν εμφανιστεί το ItinerarySelectReceiveXML αγωγών χρησιμοποιείται για να καλέσετε το μηχανισμό κανόνων επαγγελματικής να επιλέξει δυναμικά ένα δρομολόγιο (χρησιμοποιώντας το πρόγραμμα επίλυσης BRI ESB).
Δημιουργήθηκε εξαίρεση από τον προορισμό μιας κλήσης.
Προέλευση: Microsoft.Practices.ESB.Resolver.ResolverMgr
Μέθοδος: System.Collections.Generic.Dictionary'2[System.String,System.String] επίλυση (Microsoft.Practices.ESB.Resolver.ResolverInfo, Microsoft.BizTalk.Message.Interop.IBaseMessage, Microsoft.BizTalk.Component.Interop.IPipelineContext)
Προέλευση σφάλματος: mscorlib
Σφάλμα TargetSite: System.Object InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
Σφάλμα StackTrace: στο System.RuntimeMethodHandle.InvokeMethod (αντικείμενο προορισμού, αντικείμενο ορίσματα [], υπογραφή υπογραφής, Boolean κατασκευή)
στο System.Reflection.RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr, ντοσιέ ντοσιέ, αντικείμενο [] Παράμετροι, CultureInfo κουλτούρα)
στο System.RuntimeType.CreateInstanceImpl (BindingFlags bindingAttr, ντοσιέ ντοσιέ, αντικείμενο [] args, κουλτούρα CultureInfo, αντικείμενο [] activationAttributes, StackCrawlMark & stackMark)
στο System.Activator.CreateInstance (τύπος, BindingFlags bindingAttr, ντοσιέ ντοσιέ, αντικείμενο [] args, κουλτούρα CultureInfo, αντικείμενο [] activationAttributes)
στο System.Activator.CreateInstance (τύπος, αντικείμενο args [])
στο Microsoft.Practices.ESB.Resolver.ResolverFactory.Create (συμβολοσειρά του κλειδιού)
στο Microsoft.Practices.ESB.Resolver.ResolverMgr.GetResolver (στοιχεία ResolverInfo)
στο Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve (ResolverInfo πληροφορίες, το μήνυμα IBaseMessage, IPipelineContext pipelineContext)
Αιτία
2.2 Κιτ εργαλείων ESB χρησιμοποιεί 2.0 ενότητας που απαιτεί τροποποιήσεις στο αρχείο esb.config.
Προτεινόμενη αντιμετώπιση
Πρέπει να ενημερώσετε το αρχείο esb.config για να επιλύσετε αυτό το ζήτημα. Για να γίνει αυτό, αποθηκεύστε ένα αντίγραφο του αρχικού esb.config (η προεπιλεγμένη θέση είναι C:\Program Files (x86) \Microsoft Κιτ εργαλείων ESB BizTalk) πριν να κάνετε οποιαδήποτε από τις παρακάτω αλλαγές. Σημειώστε ότι οι αλλαγές του αρχείου esb.config θα απαιτούν ανακύκλωση της διαδικασίας που χρησιμοποιεί το ESB.
Μη αυτόματη τροποποίηση του υπάρχοντος αρχείου esb.config ως εξής:
-
Καταργήστε το στοιχείο < typeConfig >
-
Για να αλλάξετε το στοιχείο < typeAlias > < ψευδώνυμο >
-
Αλλάξτε το στοιχείο < τύπος > < καταχώρηση >
-
Καταργήστε τα στοιχεία < δοχεία >
-
Καταργήστε τα στοιχεία < τύπους >
-
Καταργήστε τα στοιχεία < typeAliases >
-
Καταργήστε το χαρακτηριστικό parameterType από τα στοιχεία < param >.
-
Καταργήστε το χαρακτηριστικό type του στοιχείου < τιμή > στο < όνομα παραμέτρου = "overrideExistingItinerary" >
Όλες οι παραπάνω αλλαγές να πραγματοποιείται μέσα στην ενότητα < esb.resolver > του αρχείου esb.config. Ακολουθεί την ενότητα < esb.resolver > με όλες τις παραπάνω αλλαγές που ήδη εφαρμόζονται.
<esb.resolver xmlns="http://schemas.microsoft.com/practices/2010/unity>"> <!-- Lifetime manager types -->
<alias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<!-- std type providers -->
<alias alias="string" type="System.String, mscorlib"/>
<alias alias="int" type="System.Int32, mscorlib"/>
<alias alias="bool" type="System.Boolean, mscorlib"/>
<!-- repository providers -->
<alias alias="IRepositoryProvider" type="Microsoft.Practices.ESB.Resolver.Itinerary.Facts.Repository.IRepositoryProvider, Microsoft.Practices.ESB.Resolver.Itinerary.Facts, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<alias alias="SqlRepositoryProvider" type="Microsoft.Practices.ESB.Resolver.Itinerary.DataAccess.SqlRepositoryProvider, Microsoft.Practices.ESB.Resolver.Itinerary.DataAccess, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<!-- fact providers -->
<alias alias="IFactProvider" type="Microsoft.Practices.ESB.Resolver.Facts.IFactProvider, Microsoft.Practices.ESB.Resolver.Facts, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<alias alias="IFactTranslator" type="Microsoft.Practices.ESB.Resolver.Facts.IFactTranslator, Microsoft.Practices.ESB.Resolver.Facts, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<alias alias="ItineraryFactProvider" type="Microsoft.Practices.ESB.Resolver.Itinerary.Facts.ItineraryFactProvider, Microsoft.Practices.ESB.Resolver.Itinerary.Facts, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<alias alias="ItineraryStaticFactProvider" type="Microsoft.Practices.ESB.Resolver.Itinerary.Facts.ItineraryStaticFactProvider, Microsoft.Practices.ESB.Resolver.Itinerary.Facts, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<alias alias="ItineraryHeaderFactProvider" type="Microsoft.Practices.ESB.Resolver.Itinerary.Facts.ItineraryHeaderFactProvider, Microsoft.Practices.ESB.Resolver.Itinerary.Facts, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<alias alias="ItineraryContentsFactProvider" type="Microsoft.Practices.ESB.Resolver.Itinerary.Facts.ItineraryContentsFactProvider, Microsoft.Practices.ESB.Resolver.Itinerary.Facts, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<alias alias="ResolutionFactProvider" type="Microsoft.Practices.ESB.Resolver.Itinerary.Facts.ResolutionFactProvider, Microsoft.Practices.ESB.Resolver.Itinerary.Facts, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<alias alias="DefaultFactTranslator" type="Microsoft.Practices.ESB.Resolver.Facts.DefaultFactTranslator, Microsoft.Practices.ESB.Resolver.Facts, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<alias alias="ItineraryFactTranslator" type="Microsoft.Practices.ESB.Resolver.Itinerary.Facts.ItineraryFactTranslator, Microsoft.Practices.ESB.Resolver.Itinerary.Facts, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<alias alias="ItineraryContentsFactTranslator" type="Microsoft.Practices.ESB.Resolver.Itinerary.Facts.ItineraryContentsFactTranslator, Microsoft.Practices.ESB.Resolver.Itinerary.Facts, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<!-- resolve providers -->
<alias alias="IResolveProvider" type="Microsoft.Practices.ESB.Resolver.IResolveProvider, Microsoft.Practices.ESB.Resolver, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<alias alias="ItineraryResolveProvider" type="Microsoft.Practices.ESB.Resolver.Itinerary.BREItineraryResolverContainer,Microsoft.Practices.ESB.Resolver.Itinerary, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 "/>
<alias alias="StaticItineraryResolveProvider" type="Microsoft.Practices.ESB.Resolver.Itinerary.StaticItineraryResolveContainer,Microsoft.Practices.ESB.Resolver.Itinerary, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 "/>
<!-- test containers -->
<container name="BRI">
<register type="IResolveProvider" mapTo="ItineraryResolveProvider" />
<register type="IFactProvider" mapTo="ItineraryFactProvider" name="ItineraryFactProvider">
<lifetime type="singleton" />
</register>
<register type="IRepositoryProvider" mapTo="SqlRepositoryProvider" name="CurrentRepositoryProvider">
<lifetime type="singleton" />
<constructor>
<param name="connectionStringName">
<value value="ItineraryDb"/>
</param>
<param name="cacheManagerName">
<value value="Itinerary Cache Manager"/>
</param>
<param name="cacheTimeout">
<value value="120" />
</param>
</constructor>
</register>
<register type="IFactTranslator" mapTo="DefaultFactTranslator" name="DefaultFactTranslator">
<lifetime type="singleton" />
</register>
<register type="IFactTranslator" mapTo="ItineraryFactTranslator" name="ItineraryFactTranslator">
<lifetime type="singleton" />
<constructor>
<param name="repositoryProvider">
<dependency name="CurrentRepositoryProvider"/>
</param>
</constructor>
</register>
</container>
<container name="ITINERARY">
<register type="IResolveProvider" mapTo="StaticItineraryResolveProvider" />
<register type="IRepositoryProvider" mapTo="SqlRepositoryProvider" name="CurrentRepositoryProvider">
<lifetime type="singleton" />
<constructor>
<param name="connectionStringName">
<value value="ItineraryDb"/>
</param>
<param name="cacheManagerName">
<value value="Itinerary Cache Manager"/>
</param>
<param name="cacheTimeout">
<value value="120" />
</param>
</constructor>
</register>
<register type="IFactProvider" mapTo="ResolutionFactProvider" name="ResolutionFactProvider" />
<register type="IFactProvider" mapTo="ItineraryHeaderFactProvider" name="HeaderFactProvider" />
<register type="IFactProvider" mapTo="ItineraryStaticFactProvider" name="StaticFactProvider" />
<register type="IFactProvider" mapTo="ItineraryContentsFactProvider" name="ItineraryContentsFactProvider" />
<register type="IFactTranslator" mapTo="DefaultFactTranslator" name="DefaultFactTranslator">
<lifetime type="singleton" />
</register>
<register type="IFactTranslator" mapTo="ItineraryFactTranslator" name="ItineraryFactTranslator">
<lifetime type="singleton" />
<constructor>
<param name="repositoryProvider">
<dependency name="CurrentRepositoryProvider"/>
</param>
</constructor>
</register>
<register type="IFactTranslator" mapTo="ItineraryContentsFactTranslator" name="ItineraryContentsFactTranslator">
<lifetime type="singleton" />
<constructor>
<param name="overrideExistingItinerary">
<value value="False"/>
</param>
</constructor>
</register>
</container>
</esb.resolver>
Περισσότερες πληροφορίες
Βρείτε περισσότερες πληροφορίες σχετικά με το 2.0 ενότητας σε http://msdn.microsoft.com/en-us/library/ff660914(v=pandp.20).aspx