【发布时间】:2020-07-01 08:04:40
【问题描述】:
我已经构建了一个 Asp.net 核心 API,当我开始在 Linux ubuntu 20.4 上开发它时,应用程序只是冻结了,甚至没有抛出任何异常 这是我的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
namespace passman.core
{
public class DbInitializer
{
public static async Task SeedUser(UserManager<ApplicationUser> userManager)
{
try
{
var systemUser = await userManager.FindByNameAsync("system");
if (systemUser == null)
{
systemUser = new ApplicationUser
{
DateOfBirth = DateTime.Now,
Email = "system@domain.com",
UserName = "system",
FullName = "Sys Admin"
};
await userManager.CreateAsync(systemUser, "ABCD1230@abcd");
}
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
}
}
}
在调试应用程序时,一旦到达此语句var systemUser = await userManager.FindByNameAsync("system");,执行就会冻结
这显然是在调用我正在使用身份验证/授权的数据库,但是在对数据库执行任何查询时会发生这种情况。
但奇怪的是,同样的代码运行先前版本的 Ubuntu LTS 18.04 并在 Manjaro 20.0.3 和 Windows 10 上进行了测试,它按预期工作。
数据库信息:
Microsoft SQL Server 2016 (SP1-GDR) (KB4505219) - 13.0.4259.0 (X64)
Jun 15 2019 19:20:12
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor)
【问题讨论】:
-
你的数据库在同一个主机上吗?
-
不,它是远程的,但所有三个操作系统都在同一个网络上,它们可以访问数据库服务器
-
您可以检查数据库连接日志,无论是否建立连接。也许在最新版本的 ubuntu 中有所改变。并尝试将 .NET Core 更新到最新版本
-
我刚刚将我的数据库服务器升级到 2017 现在它正在工作可能是 2016 的错误
标签: asp.net-core .net-core ubuntu-20.04