【问题标题】:Implement MassTransit replacing ServiceHost and WCF to initiate service实施 MassTransit 替换 ServiceHost 和 WCF 以启动服务
【发布时间】:2021-06-30 23:11:21
【问题描述】:

我必须使用 MassTransit 实现 Autofac,现在观看一些文档和教程,我能够在我的项目中实现一些地方,但是在我的项目的这一部分中实现时遇到了麻烦。我与 WCF 合作。

以下方法是一个接口的实现,初始化我的一个服务,我声明了 2 个 ServiceHost 变量类型,我初始化它们并打开服务。要求是使用 MassTransit 和 MassTransit.Autofac 执行相同的过程。

    private ServiceHost host;
    private ServiceHost utilHost;

    public void StartService()
    {
        host = new ServiceHost(typeof(TeamTimeManager));
        utilHost = new ServiceHost(typeof(TeamTimeUtilityManager));

        source.TraceInformation("Start service...");
        host.Open();
        source.TraceInformation("service Started!");

        utilSource.TraceInformation("Starting Utility service...");
        utilHost.Open();
        utilSource.TraceInformation("Utility Service Started!");

        foreach(SettingsProperty item in Properties.Settings.Default.Properties)
        {
            source.TraceInformation("Service SIP... " + item.Name + " : " + item.DefaultValue);
        }
    }

我现在正在做什么......它没有初始化任何两个服务,我尝试了不同的方法,但它仍然不起作用,它没有给我任何错误,只是服务没有启动,所以实现一定是不正确的,这种情况下应该如何实现呢?

    public void StartService()
    {
        var builder = new ContainerBuilder();

        builder.AddMassTransit(
            config =>
            {
                config.AddConsumers(typeof(TeamTimeManager), typeof(TeamTimeUtilityManager));
            });

        var container = builder.Build();

        var bc = container.Resolve<IBusControl>();
        bc.Start();
    }

【问题讨论】:

    标签: .net autofac masstransit


    【解决方案1】:

    您还没有配置总线,这就解释了为什么它不工作。其实IBusControl接口是没有办法解析的,因为你没有配置。

    我建议关注getting started 的内容,尤其是通过UsingInMemory(如果使用RabbitMQ,则为UsingRabbitMq)配置实际总线的部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多