我有一个服务器端Blazor应用程序,具有Visual Studio Tempalte中建议的身份验证设置。然后,我添加了身份支架项目。不,我尝试将剃须刀组件插入登录屏幕,以便可以将所有内容保持在同一设计中。
我在页面本身上添加了此内容:
<script src="~/_framework/blazor.server.js"></script>
<Login>
@(await Html.RenderComponentAsync<ApplySupportTool.Blazor.Pages.Shared.Login>(RenderMode.Server))
</Login>
现在,由于身份页面在IdentityHostingStartup.cs
中设置的自己的进程中运行(基于ScaffoldingReadme),我尝试在其中添加Blazor设置内容:
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中只有空的方法主体时,也会发生这种情况。我也尝试将所有数据库初始化代码移至启动过程中,以避免使用空指针,但此站点将无法启动。 我是否必须对此进行其他设置?
答案 0 :(得分:0)
您缺少一些用于配置DBContext的代码。
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<BloggingContext>(options => options.UseSqlite("Data Source=blog.db"));
}
中的更多详细信息