Asp.net core 值不能为null。参数名称:发布并部署到CentOS服务器后的connectionString
我在appsettings.json和appsettings.Production.json中指定了连接字符串,如下所示:Asp.net core 值不能为null。参数名称:发布并部署到CentOS服务器后的connectionString,asp.net-core,.net-core,Asp.net Core,.net Core,我在appsettings.json和appsettings.Production.json中指定了连接字符串,如下所示: { "ConnectionStrings": { "Database": "Host=localhost;Port=5432;Database=<mydb>;Username=<myuser>;Password=<mypw>" } { “连接字符串”:{ “数据库”:“主机=本地主机;端口=5432;数据库=;用户名=;
{
"ConnectionStrings": {
"Database": "Host=localhost;Port=5432;Database=<mydb>;Username=<myuser>;Password=<mypw>"
}
{
“连接字符串”:{
“数据库”:“主机=本地主机;端口=5432;数据库=;用户名=;密码=”
}
(我显然已经从字符串中删除了秘密)
然后发布解决方案。我可以在同一系统上使用dotnet
运行它。但是,当我将发布的文件复制到Linux服务器并使用该dotnet命令运行它时,我得到了错误:
System.ArgumentNullException: Value cannot be null.
Parameter name: connectionString
at Npgsql.EntityFrameworkCore.PostgreSQL.Utilities.Check.NotEmpty(String value,
String parameterName)
at Microsoft.EntityFrameworkCore.NpgsqlDbContextOptionsExtensions.UseNpgsql(DbContextOptionsBuilder optionsBuilder, String connectionString, Action`1 npgsqlOptionsAction)
at MapToGlobe.Startup.<ConfigureServices>b__2_0(DbContextOptionsBuilder options) in [path to the solution folder on my dev pc]\Startup.cs:line 25
System.ArgumentNullException:值不能为null。
参数名称:connectionString
在Npgsql.EntityFrameworkCore.PostgreSQL.Utilities.Check.NotEmpty(字符串值,
字符串参数(名称)
在Microsoft.EntityFrameworkCore.NpgsqlDbContextOptionsExtensions.UseNpgsql(dbContextOptionsBuilderOptionsBuilder,String connectionString,Action`1 npgsqlOptionsAction)
在[my dev pc上解决方案文件夹的路径]\Startup.cs:第25行中的MapToGlobe.Startup.b__2_0(DbContextOptionsBuilder选项)处
在Startup.cs文件中,我有:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddEntityFrameworkNpgsql();
services.AddDbContext<DatabaseContext>(options => options.UseNpgsql(Configuration.GetConnectionString("Database"))).BuildServiceProvider();
}
public void配置服务(IServiceCollection服务)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddEntityFrameworkNpgsql();
services.AddDbContext(options=>options.UseNpgsql(Configuration.GetConnectionString(“数据库”))).BuildServiceProvider();
}
第25行是“services.AddDbContext”行
关于这一点,我已经找到了许多问题和答案,但我尝试过的都没有奏效,现在我不知道该怎么办。终于在这里找到了我的答案: 它在本地计算机上运行,因为在命令提示符下,我导航到文件夹并运行
dotnet
。而在服务器上,我使用dotnet
从根目录运行它。因为根文件夹中不存在appsettings文件,所以它不工作