ASP NET CORE GetConnectionString不起作用

问题描述 投票:0回答:1

我是ASP NET CORE的新手,我正在编写新的Web API。我无法从appsettings.json文件中检索连接字符串,我得到一个ArgumentNullException。这是我的Startup类中的代码:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddDbContext<MyDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MyDBConnection")));
        ...
    }
}

这是我的appsettings.json文件:

{
  "ConnectionStrings": {
    "MyDBConnection": "..."
  },
  "Logging": {
    "IncludeScopes": false,
    "Debug": {
       "LogLevel": {
          "Default": "Warning"
       }
    },
    "Console": {
      "LogLevel": {
        "Default": "Warning"
      }
    }
  }
}

我错过了什么?

编辑:这也是我的Program.cs类:

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>();
}
asp.net-core connection-string dbcontext
1个回答
1
投票

只是回答这个问题。 Directory.GetCurrentDirectory()将获得bin / debug或release位置。

这意味着它不是项目位置。因此它无法找到application.json,也无法在以后找到您的MVC视图。

© www.soinside.com 2019 - 2024. All rights reserved.