Применяется к
BizTalk Server 2013 Branch BizTalk Server 2013 Developer BizTalk Server 2013 Enterprise BizTalk Server 2013 Standard

Симптомы

Следующие исключения с 2.2 ESB 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)Источник ошибки: mscorlibTargetSite ошибки: System.Object InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)StackTrace ошибка: в System.RuntimeMethodHandle.InvokeMethod (целевой объект, объект аргументов [], подпись sig, логического конструктора)в System.Reflection.RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr, связыватель Binder, Object [] parameters, CultureInfo языка и региональных параметров)в System.RuntimeType.CreateInstanceImpl (BindingFlags bindingAttr, связыватель Binder, Object [] args, CultureInfo языка и региональных параметров, объект [] activationAttributes, StackCrawlMark и stackMark)в System.Activator.CreateInstance (тип, BindingFlags bindingAttr, связыватель Binder, объект args [], CultureInfo языка и региональных параметров, объект activationAttributes [])в System.Activator.CreateInstance (тип, объект args [])в Microsoft.Practices.ESB.Resolver.ResolverFactory.Create (строковый ключ)в Microsoft.Practices.ESB.Resolver.ResolverMgr.GetResolver (ResolverInfo info)в Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve (ResolverInfo info, сообщение IBaseMessage, IPipelineContext pipelineContext)

Причина

Набор средств 2.2 ESB использует Unity 2.0, которые необходимо внести в файл esb.config.

Решение

Необходимо обновить файл esb.config, чтобы решить эту проблему. Чтобы сделать это, сохранить резервную копию исходной esb.config (по умолчанию — C:\Program Files (x86) \Microsoft набор средств BizTalk ESB) перед выполнением любой из следующих изменений. Обратите внимание, что изменения в файле esb.config потребуется повторный запуск процесса с помощью ESB.Вручную измените существующий файл esb.config следующим образом:

  1. Удалите элемент < typeConfig >

  2. Измените элемент < typeAlias > < псевдонима >

  3. Изменение элемента < тип > < зарегистрировать >

  4. Удалите элементы < контейнеров >

  5. Удалите элементы < типы >

  6. Удалите элементы < typeAliases >

  7. Удалите атрибут из элементов < param > parameterType.

  8. Удалите атрибут type элемента внутри элемента < значение > < имя param = «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>

Дополнительные сведения

Дополнительные сведения о Unity 2.0 на http://msdn.microsoft.com/en-us/library/ff660914(v=pandp.20).aspx

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.