0

我是 ASP.NET Core 的新手。我正在尝试开发一个简单的 ASP.NET Core Web API。API 连接到云中的数据库服务器。我将连接字符串存储在 中appsettings.json,将 API 部署到本地 IIS,然后运行服务。它工作得很好。当我尝试将连接字符串移动到环境变量并再次部署时,Web API 不起作用。浏览器显示“页面无法正常工作。HTTP 错误 500”。

我有几个问题要问:

  1. 在现实世界的应用程序中,我们应该在哪里存储连接字符串并部署到服务器,因为用户名和密码是敏感的?
  2. 我的 Web API 有什么问题,因为当连接字符串存储在环境变量中时它不起作用?

谢谢

4

1 回答 1

0

你应该试试这个

在 Program.cs 中

WebHost
.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(
    (hostingContext, builder) =>
    {
        var environment = hostingContext.HostingEnvironment;
        var configuration = new ConfigurationBuilder()
            .SetBasePath(System.IO.Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .AddJsonFile($"appsettings.{environment.EnvironmentName}.json", optional: true, reloadOnChange: true)
            .Build();
        //codes... 
    })
.UseStartup<Startup>()
.Build()
.Run();

你的文件名应该像 appsettings.Development.json, appsettings.Staging.json, ...

我回答你的第一个问题:如果你想保护你的用户名和密码

  1. 您应该使用第三方应用程序(如 consul)

  2. 你散列你的配置文件。但是这种方法没有意义。

  3. 您确实编写和使用硬代码。但除了部署之外没有变化。

于 2020-01-08T06:45:12.030 回答