Helpful information to includeProduct name:
Version:
Stacktrace:
Description:
Hi there. I just upgraded to NServicebus 5.0 (was 4.6 before) and now I receive an error inside my controller using NServiceBus:.
None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'Nop.Web.Controllers.ShoppingCartController' can be invoked with the available services and parameters:
Cannot resolve parameter 'NServiceBus.IBus bus' of constructor 'Void .ctor(NServiceBus.IBus,...)
This is my configuration:
public static void Init(ILifetimeScope scope)
{
var configuration = new BusConfiguration();
configuration.EndpointName(ConfigurationManager.AppSettings["ServiceBusEndpointName"]);
configuration.UseTransport<MsmqTransport>();
configuration.UseSerialization<JsonSerializer>();
configuration.UsePersistence<RavenDBPersistence>();
configuration.DisableFeature<Sagas>();
configuration.Transactions().Enable();
configuration.AssembliesToScan(AllAssemblies
.Matching("Nop.Services.dll")
.And("Messages.dll")
.And("Partner.Pricing.Messages.dll")
.And("Partner.Pricing.Infrastructure.dll"));
configuration.UseContainer<AutofacBuilder>();
configuration.PurgeOnStartup(false);
var bus = Bus.Create(configuration);
bus.Start();
var newBuilder = new ContainerBuilder();
// newBuilder.RegisterInstance(bus);
newBuilder.Update(Singleton<IContainer>.Instance);
}
As you can see, "UseContainer<AutofacBuilder>" is already included.
This was my (working) 4.6 configuration:
public static void Init(ILifetimeScope scope)
{
Configure.Transactions.Enable();
Configure.Serialization.Json();
Configure.Features.Disable<Sagas>();
var bus =
Configure.With(
AllAssemblies.Matching("Nop.Services.dll")
.And("Messages.dll")
.And("Partner.Pricing.Messages.dll")
.And("Partner.Pricing.Infrastructure.dll"))
.DefineEndpointName(ConfigurationManager.AppSettings["ServiceBusEndpointName"])
.AutofacBuilder(scope)
.Log4Net<RollingFileAppender>(x => x.File = ConfigurationManager.AppSettings["ServiceBusLog"])
.RavenSubscriptionStorage()
.UseTransport<Msmq>()
.PurgeOnStartup(false)
.UnicastBus()
.RunHandlersUnderIncomingPrincipal(false)
.CreateBus()
.Start(() => Configure.Instance.ForInstallationOn<Windows>()
.Install());
var newBuilder = new ContainerBuilder();
newBuilder.RegisterInstance(bus);
newBuilder.Update(Singleton<IContainer>.Instance);
}
Thanks