Příznaky
Následující výjimky je vyvolána s 2.2 ESB v Microsoft BizTalk Server 2013 při přijímání ItinerarySelectReceiveXML potrubí slouží k volání modul obchodní pravidla vyberte dynamicky závaznou trasu (pomocí překládání BRI ESB).
Byla vyvolána výjimka podle cíle vyvolání.
Zdroj: Microsoft.Practices.ESB.Resolver.ResolverMgr Metoda: System.Collections.Generic.Dictionary'2[System.String,System.String] řešení (Microsoft.Practices.ESB.Resolver.ResolverInfo, Microsoft.BizTalk.Message.Interop.IBaseMessage, Microsoft.BizTalk.Component.Interop.IPipelineContext) Chyba zdroj: mscorlib TargetSite Chyba: System.Object InvokeMethod(System.Object, System.Object[], System.Signature, Boolean) StackTrace Chyba: v System.RuntimeMethodHandle.InvokeMethod (cílový objekt, objekt [] argumenty, sig Podpis, konstruktor Boolean) v System.Reflection.RuntimeConstructorInfo.Invoke (příznaky BindingFlags invokeAttr, pořadače pořadače, Object [] Parametry, CultureInfo kultury) v System.RuntimeType.CreateInstanceImpl (příznaky BindingFlags bindingAttr, pořadače pořadače, objektu args [], CultureInfo kultury, objekt activationAttributes [], StackCrawlMark & stackMark) v System.Activator.CreateInstance (typ typu, příznaky BindingFlags bindingAttr, pořadače pořadače, objektu args [], CultureInfo kultury, objekt activationAttributes []) v System.Activator.CreateInstance (typ typu, objektu args []) v Microsoft.Practices.ESB.Resolver.ResolverFactory.Create (řetězec klíče) v Microsoft.Practices.ESB.Resolver.ResolverMgr.GetResolver (ResolverInfo info) na Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve (zpráva IBaseMessage, ResolverInfo info, IPipelineContext pipelineContext)
Příčina
ESB Toolkit 2.2 používá 2.0 Unity, která vyžaduje změny v souboru esb.config.
Řešení
Je nutné aktualizovat soubor esb.config Chcete-li vyřešit tento problém. To provedete uložení záložní kopie původní esb.config (výchozí umístění je C:\Program Files (x86) \Microsoft BizTalk ESB Toolkit) před provedením některé z následujících změn. Všimněte si, že změny souboru esb.config bude vyžadovat recyklaci procesu, který používá ESB.
Ručně upravte existující soubor esb.config takto:-
Odebrat prvek < typeConfig >
-
Změna prvku < typeAlias > < alias >
-
Změna prvku < typ > < zaregistrovat >
-
Odstranění prvků < kontejnery >
-
Odstranění prvků < typy >
-
Odstranění prvků < typeAliases >
-
Odeberte atribut parameterType prvků < param >.
-
Odebrat atribut type elementu < hodnota > v < Název param = "overrideExistingItinerary" >
Všechny výše uvedené změny uskutečnit v rámci části < esb.resolver > v souboru esb.config. Následuje oddíl < esb.resolver > s všechny výše uvedené změny již implementována.
<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>
Další informace
Další informace o Unity 2.0 na http://msdn.microsoft.com/en-us/library/ff660914(v=pandp.20).aspx