0
votes

Edit This is not a duplicate question I am asking about a null reference exception in a third party component.

I have a databus configured as:

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);

I have a message class as:

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; }
}

Whenever I send a message I get a null reference error. This error occurs on the send not with the handlers

System.NullReferenceException: Object reference not set to an instance of an object. at NServiceBus.DataBusSendBehavior.Invoke(OutgoingContext context, Action next) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\DataBus\DataBusSendBehavior.cs:line 51 at NServiceBus.BehaviorChain1.InvokeNext(T context) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 107 at NServiceBus.BehaviorChain1.<>c__DisplayClass4_0.b__0() in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 95 at NServiceBus.PopulateAutoCorrelationHeadersForRepliesBehavior.Invoke(OutgoingContext context, Action next) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Sagas\PopulateAutoCorrelationHeadersForRepliesBehavior.cs:line 47 at NServiceBus.BehaviorChain1.InvokeNext(T context) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 107 at NServiceBus.BehaviorChain1.<>c__DisplayClass4_0.b__0() in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 95 at NServiceBus.BehaviorChain1.InvokeNext(T context) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 107 at NServiceBus.BehaviorChain1.<>c__DisplayClass4_0.b__0() in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 95 at NServiceBus.BehaviorChain1.InvokeNext(T context) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 107 at NServiceBus.BehaviorChain1.Invoke() in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 52 at NServiceBus.Pipeline.PipelineExecutor.Execute[T](BehaviorChain`1 pipelineAction, T context) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\PipelineExecutor.cs:line 129 at NServiceBus.Pipeline.PipelineExecutor.InvokeSendPipeline(DeliveryOptions deliveryOptions, LogicalMessage message) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\PipelineExecutor.cs:line 116 at NServiceBus.Unicast.UnicastBus.SendMessage(SendOptions sendOptions, LogicalMessage message) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Unicast\UnicastBus.cs:line 610

1
This is not a duplicate, thanks! If it is link me to the answer and I will honor your google-fu skills as being superior to mine - JoshBerke

1 Answers

0
votes

This was occuring because, I was only including my own assemblies to be scanned:

config.AssembliesToScan(typeof(XXXXX).Assembly);

Changes to:

        IIncludesBuilder includesBuilder = AllAssemblies
                                            .Matching("NServiceBus")
                                            .And("XXXX.XXX");


        config.AssembliesToScan(includesBuilder);