diff --git a/runtime/dotnet/azurefunctions/Startup.cs b/runtime/dotnet/azurefunctions/Startup.cs index 896b21f0cf..7b9d6c9264 100644 --- a/runtime/dotnet/azurefunctions/Startup.cs +++ b/runtime/dotnet/azurefunctions/Startup.cs @@ -103,27 +103,28 @@ public override void Configure(IFunctionsHostBuilder builder) services.AddSingleton(); // Register telemetry client, initializers and middleware - services.AddApplicationInsightsTelemetry(settings.ApplicationInsights.InstrumentationKey); + services.AddApplicationInsightsTelemetry(settings?.ApplicationInsights?.InstrumentationKey ?? string.Empty); + services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(sp => { var telemetryClient = sp.GetService(); - return new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: settings.Telemetry.LogPersonalInformation); + return new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: settings?.Telemetry?.LogPersonalInformation ?? false); }); services.AddSingleton(sp => { var httpContextAccessor = sp.GetService(); var telemetryLoggerMiddleware = sp.GetService(); - return new TelemetryInitializerMiddleware(httpContextAccessor, telemetryLoggerMiddleware, settings.Telemetry.LogActivities); + return new TelemetryInitializerMiddleware(httpContextAccessor, telemetryLoggerMiddleware, settings?.Telemetry?.LogActivities ?? false); }); // Storage IStorage storage; - if (ConfigSectionValid(settings.CosmosDb.AuthKey)) + if (ConfigSectionValid(settings?.CosmosDb?.AuthKey)) { - storage = new CosmosDbPartitionedStorage(settings.CosmosDb); + storage = new CosmosDbPartitionedStorage(settings?.CosmosDb); } else { @@ -137,7 +138,7 @@ public override void Configure(IFunctionsHostBuilder builder) services.AddSingleton(conversationState); // Resource explorer to track declarative assets - var resourceExplorer = new ResourceExplorer().AddFolder(Path.Combine(rootDirectory, settings.Bot ?? ".")); + var resourceExplorer = new ResourceExplorer().AddFolder(Path.Combine(rootDirectory, settings?.Bot ?? ".")); services.AddSingleton(resourceExplorer); // Adapter @@ -193,15 +194,15 @@ public override void Configure(IFunctionsHostBuilder builder) public void ConfigureTranscriptLoggerMiddleware(BotFrameworkHttpAdapter adapter, BotSettings settings) { - if (ConfigSectionValid(settings.BlobStorage.ConnectionString) && ConfigSectionValid(settings.BlobStorage.Container)) + if (ConfigSectionValid(settings?.BlobStorage?.ConnectionString) && ConfigSectionValid(settings?.BlobStorage?.Container)) { - adapter.Use(new TranscriptLoggerMiddleware(new AzureBlobTranscriptStore(settings.BlobStorage.ConnectionString, settings.BlobStorage.Container))); + adapter.Use(new TranscriptLoggerMiddleware(new AzureBlobTranscriptStore(settings?.BlobStorage?.ConnectionString, settings?.BlobStorage?.Container))); } } public void ConfigureShowTypingMiddleWare(BotFrameworkAdapter adapter, BotSettings settings) { - if (settings.Feature.UseShowTypingMiddleware) + if (settings?.Feature?.UseShowTypingMiddleware == true) { adapter.Use(new ShowTypingMiddleware()); } @@ -209,7 +210,7 @@ public void ConfigureShowTypingMiddleWare(BotFrameworkAdapter adapter, BotSettin public void ConfigureInspectionMiddleWare(BotFrameworkAdapter adapter, BotSettings settings, IServiceProvider s) { - if (settings.Feature.UseInspectionMiddleware) + if (settings?.Feature?.UseInspectionMiddleware == true) { adapter.Use(s.GetService()); } diff --git a/runtime/dotnet/azurewebapp/Startup.cs b/runtime/dotnet/azurewebapp/Startup.cs index 9fd484f5c3..c8d0b88b16 100644 --- a/runtime/dotnet/azurewebapp/Startup.cs +++ b/runtime/dotnet/azurewebapp/Startup.cs @@ -47,15 +47,15 @@ public Startup(IWebHostEnvironment env, IConfiguration configuration) public void ConfigureTranscriptLoggerMiddleware(BotFrameworkHttpAdapter adapter, BotSettings settings) { - if (ConfigSectionValid(settings.BlobStorage.ConnectionString) && ConfigSectionValid(settings.BlobStorage.Container)) + if (ConfigSectionValid(settings?.BlobStorage?.ConnectionString) && ConfigSectionValid(settings?.BlobStorage?.Container)) { - adapter.Use(new TranscriptLoggerMiddleware(new AzureBlobTranscriptStore(settings.BlobStorage.ConnectionString, settings.BlobStorage.Container))); + adapter.Use(new TranscriptLoggerMiddleware(new AzureBlobTranscriptStore(settings?.BlobStorage?.ConnectionString, settings?.BlobStorage?.Container))); } } public void ConfigureShowTypingMiddleWare(BotFrameworkAdapter adapter, BotSettings settings) { - if (settings.Feature.UseShowTypingMiddleware) + if (settings?.Feature?.UseShowTypingMiddleware == true) { adapter.Use(new ShowTypingMiddleware()); } @@ -63,7 +63,7 @@ public void ConfigureShowTypingMiddleWare(BotFrameworkAdapter adapter, BotSettin public void ConfigureInspectionMiddleWare(BotFrameworkAdapter adapter, BotSettings settings, IStorage storage) { - if (settings.Feature.UseInspectionMiddleware) + if (settings?.Feature?.UseInspectionMiddleware == true) { adapter.Use(new InspectionMiddleware(new InspectionState(storage))); } @@ -72,9 +72,9 @@ public void ConfigureInspectionMiddleWare(BotFrameworkAdapter adapter, BotSettin public IStorage ConfigureStorage(BotSettings settings) { IStorage storage; - if (ConfigSectionValid(settings.CosmosDb.AuthKey)) + if (ConfigSectionValid(settings?.CosmosDb?.AuthKey)) { - storage = new CosmosDbPartitionedStorage(settings.CosmosDb); + storage = new CosmosDbPartitionedStorage(settings?.CosmosDb); } else { @@ -143,20 +143,21 @@ public void ConfigureServices(IServiceCollection services) services.AddSingleton(); // Register telemetry client, initializers and middleware - services.AddApplicationInsightsTelemetry(settings.ApplicationInsights.InstrumentationKey); + services.AddApplicationInsightsTelemetry(settings?.ApplicationInsights?.InstrumentationKey ?? string.Empty); + services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(sp => { var telemetryClient = sp.GetService(); - return new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: settings.Telemetry.LogPersonalInformation); + return new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: settings?.Telemetry?.LogPersonalInformation ?? false); }); services.AddSingleton(sp => { var httpContextAccessor = sp.GetService(); var telemetryLoggerMiddleware = sp.GetService(); - return new TelemetryInitializerMiddleware(httpContextAccessor, telemetryLoggerMiddleware, settings.Telemetry.LogActivities); + return new TelemetryInitializerMiddleware(httpContextAccessor, telemetryLoggerMiddleware, settings?.Telemetry?.LogActivities ?? false); }); var storage = ConfigureStorage(settings);