使用 nServiceBus 和 AzureDataBus 时出现空引用错误
Null Reference error using nServiceBus and AzureDataBus
编辑 这不是我问的关于第三方组件中空引用异常的重复问题。
我的数据总线配置为:
var config = new BusConfiguration();
config.AssembliesToScan(typeof(XXXXX).Assembly);
config.UseContainer<NinjectBuilder>((c)=>c.ExistingKernel(this.Kernel));
config.UsePersistence<RavenDBPersistence>();
config.UseTransport<MsmqTransport>();
config.UseSerialization<XmlSerializer>();
config.EnableInstallers();
var databus=config.UseDataBus<AzureDataBus>();
databus.ConnectionString(ConfigurationManager.
ConnectionStrings["DataBus"].ConnectionString);
config.Conventions().
DefiningDataBusPropertiesAs(p => p.Name == "Data" && p.PropertyType == typeof(Byte[]));
var bus = NServiceBus.Bus.CreateSendOnly(config);
我有一条消息 class 为:
public class FileDeliveryMessage : ICommand
{
public Byte[] Data { get; set; }
public Guid WorkId { get; set; }
public int ReportId { get; set; }
public int Extension { get; set; }
public int FileType { get; set; }
}
每当我发送消息时,我都会收到空引用错误。此错误发生在发送而不是处理程序
System.NullReferenceException: Object reference not set to an instance
of an object. at
NServiceBus.DataBusSendBehavior.Invoke(OutgoingContext context, Action
next) in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\DataBus\DataBusSendBehavior.cs:line
51 at NServiceBus.BehaviorChain1.InvokeNext(T context) in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
107 at
NServiceBus.BehaviorChain
1.<>c__DisplayClass4_0.b__0() in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
95 at
NServiceBus.PopulateAutoCorrelationHeadersForRepliesBehavior.Invoke(OutgoingContext
context, Action next) in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Sagas\PopulateAutoCorrelationHeadersForRepliesBehavior.cs:line
47 at NServiceBus.BehaviorChain1.InvokeNext(T context) in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
107 at
NServiceBus.BehaviorChain
1.<>c__DisplayClass4_0.b__0() in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
95 at NServiceBus.BehaviorChain1.InvokeNext(T context) in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
107 at
NServiceBus.BehaviorChain
1.<>c__DisplayClass4_0.b__0() in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
95 at NServiceBus.BehaviorChain1.InvokeNext(T context) in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
107 at NServiceBus.BehaviorChain
1.Invoke() in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
52 at
NServiceBus.Pipeline.PipelineExecutor.Execute[T](BehaviorChain`1
pipelineAction, T context) in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\PipelineExecutor.cs:line
129 at
NServiceBus.Pipeline.PipelineExecutor.InvokeSendPipeline(DeliveryOptions
deliveryOptions, LogicalMessage message) in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\PipelineExecutor.cs:line
116 at NServiceBus.Unicast.UnicastBus.SendMessage(SendOptions
sendOptions, LogicalMessage message) in
C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Unicast\UnicastBus.cs:line
610
发生这种情况是因为,我只包括了我自己的要扫描的程序集:
config.AssembliesToScan(typeof(XXXXX).Assembly);
更改为:
IIncludesBuilder includesBuilder = AllAssemblies
.Matching("NServiceBus")
.And("XXXX.XXX");
config.AssembliesToScan(includesBuilder);
编辑 这不是我问的关于第三方组件中空引用异常的重复问题。
我的数据总线配置为:
var config = new BusConfiguration();
config.AssembliesToScan(typeof(XXXXX).Assembly);
config.UseContainer<NinjectBuilder>((c)=>c.ExistingKernel(this.Kernel));
config.UsePersistence<RavenDBPersistence>();
config.UseTransport<MsmqTransport>();
config.UseSerialization<XmlSerializer>();
config.EnableInstallers();
var databus=config.UseDataBus<AzureDataBus>();
databus.ConnectionString(ConfigurationManager.
ConnectionStrings["DataBus"].ConnectionString);
config.Conventions().
DefiningDataBusPropertiesAs(p => p.Name == "Data" && p.PropertyType == typeof(Byte[]));
var bus = NServiceBus.Bus.CreateSendOnly(config);
我有一条消息 class 为:
public class FileDeliveryMessage : ICommand
{
public Byte[] Data { get; set; }
public Guid WorkId { get; set; }
public int ReportId { get; set; }
public int Extension { get; set; }
public int FileType { get; set; }
}
每当我发送消息时,我都会收到空引用错误。此错误发生在发送而不是处理程序
System.NullReferenceException: Object reference not set to an instance of an object. at NServiceBus.DataBusSendBehavior.Invoke(OutgoingContext context, Action next) in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\DataBus\DataBusSendBehavior.cs:line 51 at NServiceBus.BehaviorChain
1.InvokeNext(T context) in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 107 at NServiceBus.BehaviorChain
1.<>c__DisplayClass4_0.b__0() in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 95 at NServiceBus.PopulateAutoCorrelationHeadersForRepliesBehavior.Invoke(OutgoingContext context, Action next) in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Sagas\PopulateAutoCorrelationHeadersForRepliesBehavior.cs:line 47 at NServiceBus.BehaviorChain1.InvokeNext(T context) in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 107 at NServiceBus.BehaviorChain
1.<>c__DisplayClass4_0.b__0() in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 95 at NServiceBus.BehaviorChain1.InvokeNext(T context) in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 107 at NServiceBus.BehaviorChain
1.<>c__DisplayClass4_0.b__0() in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 95 at NServiceBus.BehaviorChain1.InvokeNext(T context) in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 107 at NServiceBus.BehaviorChain
1.Invoke() in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 52 at NServiceBus.Pipeline.PipelineExecutor.Execute[T](BehaviorChain`1 pipelineAction, T context) in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\PipelineExecutor.cs:line 129 at NServiceBus.Pipeline.PipelineExecutor.InvokeSendPipeline(DeliveryOptions deliveryOptions, LogicalMessage message) in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Pipeline\PipelineExecutor.cs:line 116 at NServiceBus.Unicast.UnicastBus.SendMessage(SendOptions sendOptions, LogicalMessage message) in C:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Unicast\UnicastBus.cs:line 610
发生这种情况是因为,我只包括了我自己的要扫描的程序集:
config.AssembliesToScan(typeof(XXXXX).Assembly);
更改为:
IIncludesBuilder includesBuilder = AllAssemblies
.Matching("NServiceBus")
.And("XXXX.XXX");
config.AssembliesToScan(includesBuilder);