gpt4 book ai didi

c# - 无法将生产服务器设置为生产

转载 作者:太空狗 更新时间:2023-10-29 23:29:03 25 4
gpt4 key购买 nike

在我的生产服务器上,我通过将以下内容添加到 /etc/environment 来设置环境变量:

 ASPNETCORE_ENVIRONMENT=Production

我检查它在重启后用 printenv ASPNETCORE_ENVIRONMENT 记录了。

我的服务器是 Ubuntu 14.04,我使用的是 asp.net core 1.1。

它正在加载我的 appsettings.Development.json 而不是 appsettings.Production.json

这是我的 startup.cs 构造器

    public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}

在我的日志文件中,我可以正确地看到它说 Hosting environment: Production 但如果我从配置文件输出值以查看,那么它是 appsettings.Development.json< 内容中的值.

我什至尝试从服务器中删除 appsettings.Development.json 并重新启动整个服务器,但它仍然提取相同的值,我猜它必须在某处编译。

我也试过将它添加到 .csproj:

  <ItemGroup>
<None Include="appsettings.*.json" CopyToPublishDirectory="Always" />
</ItemGroup>

我的设置文件嵌套在 VS2017 中,如下所示:

enter image description here

默认的 appsettings.json 仅具有用于日志记录的默认值,它不包含我正在提取的值。

我不知道是什么问题。

最佳答案

可能不太成功,但您可能已落入与我相同的陷阱。您需要在发布过程中显式包含基于环境的 appsettings.*.json 文件。我没有默认包含它们,但我还没有检查最新的项目模板以查看是否仍然如此。如果您还没有检查过 appsettings.Production.json 文件是否实际存在于您的生产服务器上,可能值得一看。

如果事实证明这是你的问题并且你仍在使用 project.json 那么如果你的看起来像我以前的那样,你需要添加这样的东西:

  "publishOptions": {
"include": [
"wwwroot",
"appsettings.json",
"appsettings.*.json",
"web.config"
]
}

"appsettings.*.json" 条目很重要。

如果您已经升级到 csproj 那么 this link可能会帮助您确定新项目文件格式所需的内容。

关于c# - 无法将生产服务器设置为生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42482164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com