понедельник, 27 октября 2025 г.

Aspire, RazorPage, Project

Aspire, RazorPage, Project

F:\Projects\VS\AspireRazorChartSln\AspireRazorChartSln.sln

F:\Projects\VS\AspireRazorChartSln\AspireRazorChart01\AspireRazorChart01.csproj

Вот правильная конфигурация для .NET Aspire в вашем проекте Razor Pages:

csharp
using ChartDirLib031;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Diagnostics.HealthChecks;

namespace AspireRazorChart01
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var builder = WebApplication.CreateBuilder(args);

            // Добавляем сервисы .NET Aspire
            builder.AddServiceDefaults();

            // Health Checks
            builder.Services.AddHealthChecks()
                .AddCheck("AspireRazorChart01", () => HealthCheckResult.Healthy());

            // Singletons/apps
            builder.Services.AddSingleton<ChartContainer>(sp =>
            {
                var container = new ChartContainer(80);
                for (int i = 0; i < 15; i++)
                {
                    container.AddChart(new Chart(80));
                }
                return container;
            });

            // Razor Pages support
            builder.Services.AddRazorPages();

            var app = builder.Build();

            // Используем стандартные middleware .NET Aspire
            app.MapDefaultEndpoints();

            // Standard pipeline
            if (!app.Environment.IsDevelopment())
            {
                app.UseExceptionHandler("/Error");
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseRouting();
            app.UseAuthorization();

            app.MapRazorPages();

            app.Run();
        }
    }
}

Ключевые изменения:

  1. Удалены неиспользуемые using - убраны закомментированные пространства имен Aspire

  2. Добавлен builder.AddServiceDefaults() - этот метод автоматически настраивает:

    • Metrics (метрики)

    • Tracing (трассировку)

    • Logging (структурированное логирование)

    • Health checks endpoint

  3. Добавлен app.MapDefaultEndpoints() - этот метод автоматически маппит:

    • Health checks на /health

    • Metrics на /metrics

  4. Добавлен app.UseStaticFiles() - необходим для обслуживания статических файлов

  5. Упрощен app.MapRazorPages() - убрана цепочка .WithStaticAssets()

Также убедитесь, что в вашем .csproj файле добавлены ссылки на пакеты Aspire:

xml
<PackageReference Include="Aspire.Hosting" Version="9.5.0" />
<PackageReference Include="Aspire.Microsoft.AspNetCore" Version="9.5.0" />

Эта конфигурация обеспечит правильную интеграцию со всеми компонентами .NET Aspire Dashboard.

Комментариев нет:

Отправить комментарий