diff --git a/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI/Program.cs b/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI/Program.cs index 85c40e23..be078b8c 100644 --- a/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI/Program.cs +++ b/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI/Program.cs @@ -1,4 +1,8 @@ -using EnvelopeGenerator.ReceiverUI.Components; +using EnvelopeGenerator.ReceiverUI.Client.Auth; +using EnvelopeGenerator.ReceiverUI.Client.Services; +using EnvelopeGenerator.ReceiverUI.Client.State; +using EnvelopeGenerator.ReceiverUI.Components; +using Microsoft.AspNetCore.Components.Authorization; var builder = WebApplication.CreateBuilder(args); @@ -14,6 +18,32 @@ var apiBaseUrl = builder.Configuration["ApiBaseUrl"] builder.Services.AddHttpForwarder(); +// ── Services: Müssen AUCH auf dem Server registriert sein ── +// WARUM? Bei @rendermode InteractiveAuto rendert Blazor die Seite zuerst +// auf dem Server (SSR/Prerendering). Dabei resolved es @inject-Properties. +// Wenn ein Service nur im Client-Projekt (WASM) registriert ist, aber nicht +// hier, gibt es eine InvalidOperationException beim Prerendering. +// +// Der HttpClient auf dem Server zeigt auf sich selbst (localhost), +// weil die /api/* Requests über MapForwarder an die echte API gehen. +builder.Services.AddScoped(sp => +{ + var navigationManager = sp.GetService(); + var baseUri = navigationManager?.BaseUri ?? $"https://localhost:{builder.Configuration["ASPNETCORE_HTTPS_PORT"] ?? "7206"}/"; + return new HttpClient { BaseAddress = new Uri(baseUri) }; +}); + +builder.Services.AddAuthorizationCore(); +builder.Services.AddScoped(); +builder.Services.AddScoped(sp => + sp.GetRequiredService()); + +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); + var app = builder.Build(); if (app.Environment.IsDevelopment()) diff --git a/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI/appsettings.json b/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI/appsettings.json index bbee3a49..b4f03b2f 100644 --- a/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI/appsettings.json +++ b/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI/appsettings.json @@ -1,5 +1,5 @@ { - "ApiBaseUrl": "https://localhost:5001", + "ApiBaseUrl": "https://localhost:8088", "Logging": { "LogLevel": { "Default": "Information",