Triệu chứng
Ngoại lệ được ném với ESB 2.2 trên Microsoft BizTalk Server 2013 khi nhận được ItinerarySelectReceiveXML đường ống được sử dụng để gọi doanh nghiệp quy trình tự động chọn một trình (sử dụng giải BRI ESB).
Ngoại lệ đã ném một mục tiêu của lệnh gọi.
Nguồn: Microsoft.Practices.ESB.Resolver.ResolverMgr Phương pháp: System.Collections.Generic.Dictionary'2[System.String,System.String] xử lý (Microsoft.Practices.ESB.Resolver.ResolverInfo, Microsoft.BizTalk.Message.Interop.IBaseMessage, Microsoft.BizTalk.Component.Interop.IPipelineContext) Lỗi nguồn: mscorlib Lỗi TargetSite: System.Object InvokeMethod(System.Object, System.Object[], System.Signature, Boolean) Lỗi StackTrace: tại System.RuntimeMethodHandle.InvokeMethod (đối tượng mục tiêu đối tượng] đối số, chữ ký điện sig, Boolean xây dựng) tại System.Reflection.RuntimeConstructorInfo.Invoke (BindingFlags invokeAttr hồ sơ hồ sơ, đối tượng] tham số, văn hóa CultureInfo) tại System.RuntimeType.CreateInstanceImpl (BindingFlags bindingAttr hồ sơ hồ sơ, đối tượng] args, CultureInfo văn hóa, đối tượng [activationAttributes, StackCrawlMark & stackMark) tại System.Activator.CreateInstance (loại loại BindingFlags bindingAttr, Hồ sơ hồ sơ, đối tượng] args, CultureInfo văn hóa, đối tượng] activationAttributes) tại System.Activator.CreateInstance (loại type, args [đối tượng) tại Microsoft.Practices.ESB.Resolver.ResolverFactory.Create (chuỗi phím) tại Microsoft.Practices.ESB.Resolver.ResolverMgr.GetResolver (ResolverInfo thông tin) tại Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve (ResolverInfo thông tin, thông báo IBaseMessage IPipelineContext pipelineContext)
Nguyên nhân
ESB Toolkit 2.2 sử dụng 2.0 thống nhất yêu cầu thay đổi tệp esb.config.
Giải pháp
Bạn phải cập nhật các tập tin esb.config để giải quyết vấn đề này. Để thực hiện việc này, lưu bản sao esb.config gốc (vị trí mặc định là C:\Program Files (x86) \Microsoft BizTalk ESB công cụ) trước khi thực hiện bất kỳ thay đổi sau. Lưu ý rằng esb.config tệp thay đổi sẽ yêu cầu một thùng trình đang sử dụng ESB.
Tự sửa đổi tệp esb.config hiện như sau:-
Loại bỏ các yếu tố < typeConfig >
-
Thay đổi yếu tố < typeAlias > < bí danh >
-
Thay đổi các yếu tố < loại > < đăng ký >
-
Loại bỏ các yếu tố < chứa >
-
Loại bỏ các yếu tố < loại >
-
Loại bỏ các yếu tố < typeAliases >
-
Loại bỏ thuộc tính parameterType yếu tố < param >.
-
Loại bỏ thuộc tính kiểu của phần tử < giá trị > trong < param name = "overrideExistingItinerary" >
Tất cả các thay đổi trên diễn ra trong phần < esb.resolver > esb.config tệp. Dưới đây là phần < esb.resolver > với tất cả các thay đổi đã được thực hiện.
<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>
Thông tin
Tìm thêm thông tin về thống 2.0 tại http://msdn.microsoft.com/en-us/library/ff660914(v=pandp.20).aspx