Nservicebus N服务总线:“;无法设置键的值:ScaleOut.UseSingleBrokerQueue。”;

Nservicebus N服务总线:“;无法设置键的值:ScaleOut.UseSingleBrokerQueue。”;,nservicebus,Nservicebus,我在使用nservicebus.structuremap时遇到这种类型的错误。这是我的密码 EndPointConfig.cs namespace NSBus.Server { using NServiceBus; /* This class configures this endpoint as a Server. More information about how to configure the NServiceBus host can be found here: h

我在使用nservicebus.structuremap时遇到这种类型的错误。这是我的密码

EndPointConfig.cs

namespace NSBus.Server
{
using NServiceBus;

/*
    This class configures this endpoint as a Server. More information about how to configure the NServiceBus host
    can be found here: http://particular.net/articles/the-nservicebus-host
*/
public class EndpointConfig : IConfigureThisEndpoint, AsA_Server, UsingTransport<Msmq>, IWantCustomInitialization
{
    public static IBus Bus { get; private set; }

    public void Init()
    {
        ConfigureIocTool();
    }

    private static void ConfigureIocTool()
    {
        var container = new Container(y => y.Scan(scan =>
        {
            scan.TheCallingAssembly();
            scan.AssemblyContainingType<SanelibRegistry>();
            scan.AssemblyContainingType<CommonRegistry>();
            scan.AssemblyContainingType<CoreRegistry>();
            scan.WithDefaultConventions();
            scan.LookForRegistries();
        }));

        Bus = Configure.With()
            .StructureMapBuilder(container)
            .MsmqSubscriptionStorage()
            .PurgeOnStartup(false)
            .UnicastBus()
            .ImpersonateSender(false)
            .CreateBus()
            .Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());           
    }    
}
名称空间NSBus.Server
{
使用NServiceBus;
/*
此类将此终结点配置为服务器。有关如何配置NServiceBus主机的详细信息
可在此处找到:http://particular.net/articles/the-nservicebus-host
*/
公共类EndpointConfig:IConfigureThiseEndpoint,AsA_服务器,使用传输,IWantCustomInitialization
{
公共静态IBus总线{get;专用集;}
公共void Init()
{
配置ioctool();
}
私有静态void配置ioctool()
{
var container=新容器(y=>y.Scan(Scan=>
{
扫描。卡入总成();
scan.AssemblyContainingType();
scan.AssemblyContainingType();
scan.AssemblyContainingType();
scan.WithDefaultConventions();
scan.LookForRegistries();
}));
Bus=Configure.With()
.StructureMapBuilder(容器)
.MsmqSubscriptionStorage()
.PurgeOnStartup(错误)
.UnicastBus()
.ImpersonateSender(错误)
.CreateBus()
.Start(()=>Configure.Instance.ForInstallationOn().Install());
}    
}
}


此代码已成功运行,但一段时间后出现错误。

因为我使用的是NServiceBus.Host,所以不需要在端点配置中创建总线:

我的初始化如下所示: 由于使用了AsA_服务器角色,它已经将启动时清除队列设置为false、使用单播总线等。 总线将被创建,并通过DI在所有消息处理程序中可用

public class EndpointConfig : IConfigureThisEndpoint, AsA_Server, UsingTransport<Msmq>, IWantCustomInitialization
{
    public void Init()
    {
        var container = new Container(y => y.Scan(scan =>
        {
            scan.TheCallingAssembly();
            scan.AssemblyContainingType<SanelibRegistry>();
            scan.AssemblyContainingType<CommonRegistry>();
            scan.AssemblyContainingType<CoreRegistry>();
            scan.WithDefaultConventions();
            scan.LookForRegistries();
        }));

        Configure.With()
            .StructureMapBuilder(container)
            .MsmqSubscriptionStorage();
    }
}
公共类EndpointConfig:IConfigureThisEndpoint,AsA_服务器,使用传输,IWantCustomInitialization
{
公共void Init()
{
var container=新容器(y=>y.Scan(Scan=>
{
扫描。卡入总成();
scan.AssemblyContainingType();
scan.AssemblyContainingType();
scan.AssemblyContainingType();
scan.WithDefaultConventions();
scan.LookForRegistries();
}));
用()配置
.StructureMapBuilder(容器)
.MsmqSubscriptionStorage();
}
}
有关更多详细信息,请参阅: (部分内置配置)以及

另外,对于订阅存储,建议将RavenDB或NHibernate(sql存储)用于生产,而不是msmq

希望这有帮助


Nikunj Balar

因为我使用的是NServiceBus.Host,所以我不需要在端点配置中创建总线:

我的初始化如下所示: 由于使用了AsA_服务器角色,它已经将启动时清除队列设置为false、使用单播总线等。 总线将被创建,并通过DI在所有消息处理程序中可用

public class EndpointConfig : IConfigureThisEndpoint, AsA_Server, UsingTransport<Msmq>, IWantCustomInitialization
{
    public void Init()
    {
        var container = new Container(y => y.Scan(scan =>
        {
            scan.TheCallingAssembly();
            scan.AssemblyContainingType<SanelibRegistry>();
            scan.AssemblyContainingType<CommonRegistry>();
            scan.AssemblyContainingType<CoreRegistry>();
            scan.WithDefaultConventions();
            scan.LookForRegistries();
        }));

        Configure.With()
            .StructureMapBuilder(container)
            .MsmqSubscriptionStorage();
    }
}
公共类EndpointConfig:IConfigureThisEndpoint,AsA_服务器,使用传输,IWantCustomInitialization
{
公共void Init()
{
var container=新容器(y=>y.Scan(Scan=>
{
扫描。卡入总成();
scan.AssemblyContainingType();
scan.AssemblyContainingType();
scan.AssemblyContainingType();
scan.WithDefaultConventions();
scan.LookForRegistries();
}));
用()配置
.StructureMapBuilder(容器)
.MsmqSubscriptionStorage();
}
}
有关更多详细信息,请参阅: (部分内置配置)以及

另外,对于订阅存储,建议将RavenDB或NHibernate(sql存储)用于生产,而不是msmq

希望这有帮助


Nikunj Balar

在执行IWantCustomInitialization时,当时得到了这个错误。否则在实现IWantCustomInitialization时平滑运行,当时出现此错误。否则,请在达喀拉顺利运行