Компонент Blazor на странице идентификации бритвы - PullRequest
1 голос
/ 02 октября 2019

У меня есть приложение Blazor на стороне сервера с настройкой аутентификации, как это предлагается в Visual Studio Tempalte. Затем я добавил элементы лесов идентификации. Нет, я пытаюсь добавить компонент бритвы на экран входа в систему, чтобы я мог сохранить все в одном дизайне.

На самой странице я добавил это:

<script src="~/_framework/blazor.server.js"></script>
<Login>
    @(await Html.RenderComponentAsync<ApplySupportTool.Blazor.Pages.Shared.Login>(RenderMode.Server))
</Login>

Теперь, так как IdentityСтраницы запускаются в своих собственных процессах (на основе ScaffoldingReadme), которые настраиваются в IdentityHostingStartup.cs Я пытался добавить туда настройки Blazor Setup:

        builder.ConfigureServices((context, services) => { 
        });

        builder.UseStartup<IdentityStartup>();

public class IdentityStartup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddServerSideBlazor();
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseRouting();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapBlazorHub();
        });
    }
}

Но как только я это сделаю, я получуИсключение нулевого указателя, когда я пытаюсь разрешить свой контекст БД в programm.cs. Интересно, что это происходит и тогда, когда у меня есть только пустые тела методов в IdentityStartup. Также я попытался переместить весь код инициализации БД в автозагрузку, чтобы избежать нулевого указателя, но тогда сайт просто не запустился. Должен ли я установить это по-другому или где-то еще?

1 Ответ

0 голосов
/ 14 ноября 2019

Вам не хватает кода для конфигурации DBContext.

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<BloggingContext>(options => options.UseSqlite("Data Source=blog.db"));
}

Подробнее в Настройка DbContext

...