-1

I am trying to implement subcriber in C# console app using Dapr, but its giving the below error.

Error:

app channel not initialized, make sure -app-port is specified if pubsub subscription is required

Exited App successfully

terminated signal received: shutting down Exited Dapr successfully

Code:

public static void Main(string[] args)
{
    DaprClient _dapr = new DaprClientBuilder().Build();
    _dapr.PublishEventAsync("pubSubName", "topicName", "data");
}
Vivek Nuna
  • 25,472
  • 25
  • 109
  • 197

1 Answers1

0

I am able to solve the issue by converting the console app to windows (worker) service.

public static void Main(string[] args)
{
    CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
    services.AddHostedService<MyService>();
})
.ConfigureWebHostDefaults((builder) =>
{
    builder.UseStartup<Startup>();
});

public  class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDaprClient();
    }
    public void Configure()
    {
    }
}

public class MyService: BackgroundService
{
    private readonly DaprClient _dapr;

    public PaymentService(DaprClient dapr)
    {
        _dapr = dapr;
    }
    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            await _dapr.PublishEventAsync();
            await Task.Delay(1000, stoppingToken);
        }
    }
}
Vivek Nuna
  • 25,472
  • 25
  • 109
  • 197