| File: DistributedApplicationLifecycle.cs | Web Access |
| Project: src\src\Aspire.Hosting\Aspire.Hosting.csproj (Aspire.Hosting) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Reflection; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace Aspire.Hosting; internal sealed class DistributedApplicationLifecycle( ILogger<DistributedApplication> logger, IConfiguration configuration, DistributedApplicationExecutionContext executionContext, LocaleOverrideContext localeOverrideContext) : IHostedLifecycleService { public Task StartAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } public Task StartedAsync(CancellationToken cancellationToken) { if (executionContext.IsRunMode) { logger.LogInformation("Distributed application started. Press Ctrl+C to shut down."); } return Task.CompletedTask; } public Task StartingAsync(CancellationToken cancellationToken) { if (GetType().Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion is string informationalVersion) { // Write version at info level so it's written to the console by default. Help us debug user issues. // Display version and commit like 8.0.0-preview.2.23619.3+17dd83f67c6822954ec9a918ef2d048a78ad4697 logger.LogInformation("Aspire version: {Version}", informationalVersion); } if (executionContext.IsRunMode) { logger.LogInformation("Distributed application starting."); logger.LogInformation("Application host directory is: {AppHostDirectory}", configuration["AppHost:Directory"]); } if (localeOverrideContext.OverrideErrorMessage is { Length: > 0 } localOverrideError) { logger.LogWarning(localOverrideError); } return Task.CompletedTask; } public Task StopAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } public Task StoppedAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } public Task StoppingAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } }