NserviceBus выдает исключение при ссылке на сборку Nettiers - PullRequest
0 голосов
/ 01 апреля 2010

Мы используем nettiers в качестве слоя данных, и недавно мы начали изучать использование NServiceBus, но мы попали в стену.

У нас есть служба Windows, которая размещает NSB и ссылается на нашу сборку Nettiers.

служба выдает исключение при обнаружении следующей строки.

var Bus = Configure.With().SpringBuilder()
            .XmlSerializer()
            .MsmqTransport()
                .IsTransactional(false)
                .PurgeOnStartup(false)
            .UnicastBus()
                .ImpersonateSender(false)
            .CreateBus()
            .Start();

исключение, которое является броском:

Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

Сообщение об исключении загрузчика:

Could not load file or assembly 'Microsoft.Practices.Unity, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.":"Microsoft.Practices.Unity, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

трассировка стека:

at System.Reflection.Module._GetTypesInternal(StackCrawlMark& stackMark)
at System.Reflection.Assembly.GetTypes()
at NServiceBus.Configure.<>c__DisplayClass1.<With>b__0(Assembly a) in d:\BuildAgent-03\work\672d81652eaca4e1\src\config\NServiceBus.Config\Configure.cs:line 122
at System.Array.ForEach[T](T[] array, Action`1 action)
at NServiceBus.Configure.With(Assembly[] assemblies) in d:\BuildAgent-03\work\672d81652eaca4e1\src\config\NServiceBus.Config\Configure.cs:line 122
at NServiceBus.Configure.With(IEnumerable`1 assemblies) in d:\BuildAgent-03\work\672d81652eaca4e1\src\config\NServiceBus.Config\Configure.cs:line 111
at NServiceBus.Configure.With(String probeDirectory) in d:\BuildAgent-03\work\672d81652eaca4e1\src\config\NServiceBus.Config\Configure.cs:line 101
at NServiceBus.Configure.With() in d:\BuildAgent-03\work\672d81652eaca4e1\src\config\NServiceBus.Config\Configure.cs:line 78
at MessageSender.Program.Main(String[] args) in C:\Development\NSBTest4\MessageSender\Program.cs:line 18

без ссылки на nettiers NSB работает нормально. Есть идеи, в чем проблема и как ее решить?

спасибо.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2013

Microsoft Enterprise Library (на которую ссылаются .NetTiers) была нашей проблемой, которая в свою очередь ссылалась на более старую версию Unity. Для решения проблемы мы использовали следующее перенаправление привязки в конфигурации:

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Practices.Unity" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="1.0.0.0-2.0.414.0" newVersion="2.1.505.0" />
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Practices.Unity.Configuration" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="1.0.0.0-2.0.414.0" newVersion="2.1.505.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

В качестве альтернативы, вы можете просто обновить Enterprise Library до последней версии.

0 голосов
/ 02 апреля 2010

Вы можете исключить nettiers dll из сканирования, используя С (AllAssemblies.Except ("имя nettiers dll")) ...

...