Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 值不能为null。参数名称:发布并部署到CentOS服务器后的connectionString_Asp.net Core_.net Core - Fatal编程技术网

Asp.net core 值不能为null。参数名称:发布并部署到CentOS服务器后的connectionString

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;数据库=;用户名=;

我在appsettings.json和appsettings.Production.json中指定了连接字符串,如下所示:

{
    "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文件,所以它不工作