diff --git a/src/Dapr.Workflow/DaprWorkflowClientBuilderFactory.cs b/src/Dapr.Workflow/DaprWorkflowClientBuilderFactory.cs
index 7a854cf05..8e284baf3 100644
--- a/src/Dapr.Workflow/DaprWorkflowClientBuilderFactory.cs
+++ b/src/Dapr.Workflow/DaprWorkflowClientBuilderFactory.cs
@@ -41,7 +41,7 @@ public DaprWorkflowClientBuilderFactory(IConfiguration configuration, IHttpClien
_httpClientFactory = httpClientFactory;
_services = services;
}
-
+
///
/// Responsible for building the client itself.
///
@@ -50,17 +50,25 @@ public void CreateClientBuilder(Action configure)
{
_services.AddDurableTaskClient(builder =>
{
+ WorkflowRuntimeOptions options = new();
+ configure?.Invoke(options);
+
var apiToken = DaprDefaults.GetDefaultDaprApiToken(_configuration);
var grpcEndpoint = DaprDefaults.GetDefaultGrpcEndpoint(_configuration);
-
+
var httpClient = _httpClientFactory.CreateClient();
if (!string.IsNullOrWhiteSpace(apiToken))
{
- httpClient.DefaultRequestHeaders.Add( "Dapr-Api-Token", apiToken);
+ httpClient.DefaultRequestHeaders.Add("Dapr-Api-Token", apiToken);
}
- builder.UseGrpc(GrpcChannel.ForAddress(grpcEndpoint, new GrpcChannelOptions { HttpClient = httpClient }));
+ var channelOptions = options.GrpcChannelOptions ?? new GrpcChannelOptions
+ {
+ HttpClient = httpClient
+ };
+
+ builder.UseGrpc(GrpcChannel.ForAddress(grpcEndpoint, channelOptions));
builder.RegisterDirectly();
});
@@ -81,8 +89,12 @@ public void CreateClientBuilder(Action configure)
httpClient.DefaultRequestHeaders.Add("Dapr-Api-Token", apiToken);
}
- builder.UseGrpc(
- GrpcChannel.ForAddress(grpcEndpoint, new GrpcChannelOptions { HttpClient = httpClient }));
+ var channelOptions = options.GrpcChannelOptions ?? new GrpcChannelOptions
+ {
+ HttpClient = httpClient
+ };
+
+ builder.UseGrpc(GrpcChannel.ForAddress(grpcEndpoint, channelOptions));
}
else
{