バスの作成に問題があります。With()関数( "MyAssembly.LetterProcessor")に渡されるコレクションから最後のアセンブリを削除すると、このセクションでは壊れませんが、後で壊れます。エラーメッセージは、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」のみです。内部例外はありません。
NSB3.2.0.0を使用しています。
NServiceBus.SetLoggingLibrary.Log4Net(log4net.Config.XmlConfigurator.Configure);
var assemblies = new List<Assembly> { Assembly.Load("NServiceBus"), Assembly.Load("NServiceBus.Core"), Assembly.Load("MyAssembly.LetterProcessor") };
var cfg = NServiceBus.Configure.With(assemblies);
cfg = cfg.DefineEndpointName("MyAssembly.letterprocessor");
cfg = cfg.DefaultBuilder();
cfg = cfg.DefiningMessagesAs(t => t.Namespace != null &&
(
t.Namespace.Equals("MyAssembly.LetterProcessor.NSB.BatchSaga")
|| t.Namespace.Equals("MyAssembly.LetterProcessor.NSB.FileSaga")
)
);
cfg = cfg.MessageForwardingInCaseOfFault();
cfg = cfg.Log4Net();
cfg = cfg.StructureMapBuilder();
cfg = cfg.XmlSerializer();
cfg = cfg.MsmqTransport();
cfg = cfg.IsTransactional(true);
cfg = cfg.IsolationLevel(System.Transactions.IsolationLevel.Serializable);
cfg = cfg.Sagas();
cfg = cfg.NHibernateSagaPersister();
var cfgu = cfg.UnicastBus();
cfgu = cfgu.LoadMessageHandlers();
var sb = cfgu.CreateBus(); // <-- breaks here.
var bus = sb.Start();
...およびスタックトレース:
at System.Reflection.Emit.CustomAttributeBuilder.EmitValue(BinaryWriter writer, Type type, Object value)
at System.Reflection.Emit.CustomAttributeBuilder.InitCustomAttributeBuilder(ConstructorInfo con, Object[] constructorArgs, PropertyInfo[] namedProperties, Object[] propertyValues, FieldInfo[] namedFields, Object[] fieldValues)
at System.Reflection.Emit.CustomAttributeBuilder..ctor(ConstructorInfo con, Object[] constructorArgs, PropertyInfo[] namedProperties, Object[] propertyValues)
at NServiceBus.MessageInterfaces.MessageMapper.Reflection.MessageMapper.BuildCustomAttribute(Object customAttribute)
at NServiceBus.MessageInterfaces.MessageMapper.Reflection.MessageMapper.AddCustomAttributeToProperty(Object customAttribute, PropertyBuilder propBuilder)
at NServiceBus.MessageInterfaces.MessageMapper.Reflection.MessageMapper.CreateTypeFrom(Type t, ModuleBuilder moduleBuilder)
at NServiceBus.MessageInterfaces.MessageMapper.Reflection.MessageMapper.GenerateImplementationFor(Type interfaceType, ModuleBuilder moduleBuilder)
at NServiceBus.MessageInterfaces.MessageMapper.Reflection.MessageMapper.InitType(Type t, ModuleBuilder moduleBuilder)
at NServiceBus.MessageInterfaces.MessageMapper.Reflection.MessageMapper.InitType(Type t, ModuleBuilder moduleBuilder)
at NServiceBus.MessageInterfaces.MessageMapper.Reflection.MessageMapper.InitType(Type t, ModuleBuilder moduleBuilder)
at NServiceBus.MessageInterfaces.MessageMapper.Reflection.MessageMapper.Initialize(IEnumerable`1 types)
at NServiceBus.Serializers.XML.Config.MessageTypesInitializer.Run()
at NServiceBus.Configure.<Initialize>b__d(IWantToRunWhenConfigurationIsComplete o)
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at NServiceBus.Configure.Initialize()
at NServiceBus.Configure.CreateBus()
at MyAssembly.LetterProcessor.Service.Tests.Tests.EndpointInit() in C:\svn\MyAssembly\LetterProcessor\trunk\src\MyAssembly.LetterProcessor.Service.Tests\Tests.cs:line 72>