Symptomer
Den følgende unntak med ESB 2.2 på Microsoft BizTalk Server 2013 når mottar ItinerarySelectReceiveXML rørledning brukes til å kalle motoren Business regler for å velge en reiserute (med ESB BRI Resolver) dynamisk.
Unntak er registrert av målet for et anrop.
Kilde: Microsoft.Practices.ESB.Resolver.ResolverMgr Metode: System.Collections.Generic.Dictionary'2[System.String,System.String] løse (Microsoft.Practices.ESB.Resolver.ResolverInfo, Microsoft.BizTalk.Message.Interop.IBaseMessage, Microsoft.BizTalk.Component.Interop.IPipelineContext) Feilkilde: mscorlib Feil TargetSite: System.Object InvokeMethod(System.Object, System.Object[], System.Signature, Boolean) Feil StackTrace: på System.RuntimeMethodHandle.InvokeMethod (objekt mål, Object [] argumenter, signatur sig, boolsk konstruktør) på System.Reflection.RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr, dokumentordneren dokumentordneren, Object [] Parametere, CultureInfo kultur) på System.RuntimeType.CreateInstanceImpl (BindingFlags bindingAttr, dokumentordneren dokumentordneren, Object [] args, CultureInfo kultur, Object [] activationAttributes, StackCrawlMark & stackMark) på System.Activator.CreateInstance (Type type, BindingFlags bindingAttr, dokumentordneren dokumentordneren, Object [] args, CultureInfo kultur, Object [] activationAttributes) på System.Activator.CreateInstance (type som, Object [] args) ved Microsoft.Practices.ESB.Resolver.ResolverFactory.Create (String-key) på Microsoft.Practices.ESB.Resolver.ResolverMgr.GetResolver (ResolverInfo info) på Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve (informasjon om ResolverInfo, IBaseMessage-melding, IPipelineContext pipelineContext)
Årsak
ESB Toolkit 2.2 bruker Unity 2.0 som krever endringer i filen esb.config.
Oppløsning
Du må oppdatere filen esb.config for å løse dette problemet. Hvis du vil gjøre dette, kan du lagre en sikkerhetskopi av den opprinnelige esb.config (standardplasseringen er C:\Program Files (x86) \Microsoft BizTalk ESB Toolkit) før du gjør noe av følgende endringer. Vær oppmerksom på at esb.config endres krever resirkulering av prosessen som bruker ESB.
Manuelt endre den eksisterende esb.config-filen som følger:-
Fjern elementet < typeConfig >
-
Endre < typeAlias >-elementet til < alias >
-
Endre < type >-elementet til < registrere >
-
Fjerne elementene < beholdere >
-
Fjerne elementene < typer >
-
Fjerne elementene < typeAliases >
-
Fjern attributtet ParameterSkriv inn < param > elementer.
-
Fjern type-attributtet med < verdi >-elementet i < param name = "overrideExistingItinerary" >
Alle ovenfor endringene foretas i < esb.resolver >-delen av filen esb.config. Nedenfor er < esb.resolver >-delen med alle allerede implementert over endringene.
<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>
Hvis du vil ha mer informasjon
Du finner mer informasjon om Unity 2.0 på http://msdn.microsoft.com/en-us/library/ff660914(v=pandp.20).aspx