我正在尝试在 Visual Studio 2019 中使用 Blazor 构建一个简单的 CRUD 应用程序 - 我在 YouTube、PluralSight 和 Channel 9 之间观看了超过 7 个教程,并且在所有这些教程中,他们使用 Entity Framework Core 从以下位置创建数据库和表在 Visual Studio 中,这是可以理解的,因为代码优先是理想的架构。
但是,我的数据库和表已经存在,第一步,我只想将 Blazor 应用程序连接到一个表并将其读入 UI 列。
我将如何完成在 Visual Studio 2019 中导入现有数据库表的步骤?如果网络上有专门针对在 Blazor 中完成此操作的文档,请务必指出这一点,因为我无法在某些旧的 ASP.Net MVC 文档之外找到任何内容。
ef-database-first entity-framework-core blazor visual-studio-2019
我有一个在 IIS 10 上发布的 Blazor 服务器端应用程序。当浏览到任意页面并在一分钟左右(有时只有 45 秒,有时在 1 到 2 分钟之间)后让它空闲时,模态
正在尝试重新连接到服务器...
出现几秒钟。在浏览器控制台中,日志显示
错误:连接因错误“错误:服务器超时而未收到来自服务器的消息而断开连接。”。
或者
信息:连接已断开。
由于这似乎是一个超时问题,因此我在startup.cs 中向ConfigureServices添加了以下选项
services.AddServerSideBlazor()
.AddHubOptions(options =>
{
options.ClientTimeoutInterval = TimeSpan.FromMinutes(10);
options.KeepAliveInterval = TimeSpan.FromSeconds(3);
options.HandshakeTimeout = TimeSpan.FromMinutes(10);
});
Run Code Online (Sandbox Code Playgroud)
但这并不能解决问题。
我还转到了 IIS 中站点的高级设置,并将连接超时从默认的 120 秒增加到 600 秒。这也没有帮助。
这些频繁断开连接仅发生在 IIS 10 上托管的实时站点上。如果我使用 Visual Studio 在本地启动应用程序,则连接是稳定的。
我所缺少的任何提示将不胜感激!
更新:
正如@agua from mars 在下面的评论中所建议的那样,我更改了这样的传输类型
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapBlazorHub(options => { options.Transports = HttpTransportType.LongPolling; });
endpoints.MapFallbackToPage("/_Host");
});
Run Code Online (Sandbox Code Playgroud)
通过此更改,连接仍处于关闭状态。控制台日志显示
信息:(LongPolling 传输)轮询被服务器终止。
我也试过HttpTransportType.ServerSentEvents,它根本不起作用,但给出了这个错误 …