Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
netcore 3.1启动中的NServiceBus配置_Nservicebus - Fatal编程技术网

netcore 3.1启动中的NServiceBus配置

netcore 3.1启动中的NServiceBus配置,nservicebus,Nservicebus,我已经阅读了在NetCore中设置NServiceBuse的所有文档和示例,但是,所有示例都在程序.cs(Host.CreateDefaultBuilder().UseNServiceBus())中进行了配置 我想知道是否可以在Program.cs的ConfigureServices方法中配置NServiceBus。 原因是在HostBuilder中,我正在构建所有IConfiguration选项(例如,从appsettings.json、EnvironmentVariables、AzureKe

我已经阅读了在NetCore中设置NServiceBuse的所有文档和示例,但是,所有示例都在
程序.cs
Host.CreateDefaultBuilder().UseNServiceBus()
)中进行了配置

我想知道是否可以在
Program.cs
ConfigureServices
方法中配置NServiceBus。 原因是在
HostBuilder
中,我正在构建所有
IConfiguration
选项(例如,从appsettings.json、EnvironmentVariables、AzureKeyVault、ConfigMaps等读取)和记录器实现。调用
ConfigureServices
时,所有这些问题都已解决。我需要能够从IConfiguration中获取连接字符串之类的内容,因此我认为在HostBuilder中这样做是行不通的

看起来有很多工作可能正在幕后进行,以注入
IMessageSession
并扫描
IHandlMessages
实例。这应该可以在服务中完成


编辑:忘记添加,因为它在
程序.cs
中,而且我们使用的是Serilog,我没有LoggerFactory。LoggerFactory是由服务注册和注入的,但我无法在启动时获得它。

看起来这不是一个选项。我能够找到一个解决办法来让它全部正常工作,就是把它放在Program()中,并确保在所有其他配置完成后调用它。这似乎并不理想,而且似乎是netcore 3的反模式。

看起来这不是一个选项。我能够找到一个解决办法来让它全部正常工作,就是把它放在Program()中,并确保在所有其他配置完成后调用它。它似乎并不理想,而且似乎是netcore 3的反模式。

我想补充一点,这是一个糟糕的设计选择。我应该能够注册我的东西在启动和包扫描不应该发生

这是一个整洁的项目,但我认为对于任何非琐碎的开发来说,它都可能是缺乏的

原因是我希望有一个具有多个端点的web主机,如果不运行两个完整实例(),我就无法做到这一点

我的工作流程是

  • 信息进来做所有的工作
  • 信息#1以100多条信息开始传奇
  • 每一条消息都会发布一个已完成的更新,以便用户界面可以检查传奇的状态
  • 来自#3的消息在处理完所有100多条消息(FIFO)后才会被处理


    我想做的是有第二个队列(我们正在使用Azure service bus)来侦听工作程序更新并更新UI。

    我想补充一点,这是一个糟糕的设计选择。我应该能够注册我的东西在启动和包扫描不应该发生

    这是一个整洁的项目,但我认为对于任何非琐碎的开发来说,它都可能是缺乏的

    原因是我希望有一个具有多个端点的web主机,如果不运行两个完整实例(),我就无法做到这一点

    我的工作流程是

  • 信息进来做所有的工作
  • 信息#1以100多条信息开始传奇
  • 每一条消息都会发布一个已完成的更新,以便用户界面可以检查传奇的状态
  • 来自#3的消息在处理完所有100多条消息(FIFO)后才会被处理


    我想做的是有第二个队列(我们正在使用Azure service bus)来侦听并更新UI上的工作程序更新。

    尽管您已经有了解决方法,但我已经构建了一个类似的设置,如您所述,使用Serilog作为记录器和NServiceBus。您可以访问Program.cs中的配置,如下所示:

    public static IHostBuilder CreateHostBuilder() =>
        Host.CreateDefaultBuilder()
            .ConfigureAppConfiguration()
            .UseSerilog()
            .UseNServiceBus(c => NServiceBusSetup.Configure(c.Configuration, c.HostingEnvironment))
    

    在自制的方法NServiceBus.Configure中,您可以设置端点。

    尽管您已经有了解决方法,但我已经构建了一个类似的设置,正如您使用Serilog作为记录器和NServiceBus所述。您可以访问Program.cs中的配置,如下所示:

    public static IHostBuilder CreateHostBuilder() =>
        Host.CreateDefaultBuilder()
            .ConfigureAppConfiguration()
            .UseSerilog()
            .UseNServiceBus(c => NServiceBusSetup.Configure(c.Configuration, c.HostingEnvironment))
    

    在自制的方法NServiceBus.Configure中,您可以设置端点。

    是否有包含可用配置的上下文参数重载
    Host.CreateDefaultBuilder().UseNServiceBus(context=>{var config=context.Configuration;})
    是否有包含可用配置的上下文参数的重载<代码>主机.CreateDefaultBuilder().UseNServiceBus(上下文=>{var config=context.Configuration;})