Nettier를 데이터 계층으로 사용하고 최근에 NServiceBus를 사용하여 보았지만 벽에 부딪혔습니다.Nettier 어셈블리를 참조 할 때 NserviceBus가 예외를 throw합니다.
NSB를 호스팅하고 Nettier 어셈블리를 참조하는 Windows 서비스가 있습니다.
다음 줄을 발견하면 서비스가 예외를 throw합니다. 던지기는
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
스택 트레이스은 다음과 같습니다 nettiers없이
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
가 NSB의 작품을 참조 벌금. 문제는 무엇이며 문제를 해결하는 방법은 무엇입니까?
감사합니다.
제안 해 주셔서 감사합니다.하지만 불행히도 아무런 효과가 없습니다. Nettiers 어셈블리는 DataLayer.dll 에서 참조되며이 NSL 프로젝트는 차례대로 참조됩니다. 그래서 With (AllAssemblies.Except ("DataLayer.dll")) 을 추가했지만 아무런 영향을 미치지 않았습니다. – IGoor
AllAssemlies.Except ("datalayer.dll")를 사용하여 datalayer.dll과 nettiers dll을 모두 제외 할 수 있습니까? ("nettiers.dll")? –
예. 우리는 행운이없이 그것을 시도했다. 포함 할 어셈블리를 지정하여 작업을 끝내십시오. (typeof (IMessage) .Assembly, typeof (MessageItem.MessageItem) .Assembly, typeof (NServiceBus.Unicast.Transport.CompletionMessage) .Assembly, typeof MessageReceiver.MessageHandler) .Assembly) – IGoor