【问题标题】:c# .Net Core 3.1 Azure App Service Windows - Application not able to retrieve App settingsc# .Net Core 3.1 Azure App Service Windows - 应用程序无法检索应用程序设置
【发布时间】:2021-01-12 06:40:17
【问题描述】:

我遇到了 .Net core 3.1 应用程序无法正常运行的问题。 我可以在本地机器上正常运行该应用程序。 我在应用程序上添加了自定义授权,该应用程序在我的本地机器上运行良好。 在我将应用程序部署到 Azure 应用程序服务并使用应用程序设置配置变量并重新启动应用程序并对其进行测试后,授权失败。

在我使用 Configuration["Appsettings:Authorization"] 读取应用程序设置的 Configureservices 方法中的 Startup 类中。 在我的本地机器上,这个值来自 appsettings.json。 一切顺利。

在我将应用程序部署到 Azure 后,创建应用程序设置(请参阅屏幕截图)并重新启动应用程序并测试,我收到 unAuthorize 消息。

为了解决它,我现在将应用程序重新部署到 Azure,但包含 appsettings.json,现在应用程序运行正常。

我想知道 Configuration["Appsettings:Authorization"] 是否是读取 Azure 应用程序设置的正确方法,或者我在这里做错了什么。 请指教。

【问题讨论】:

  • 在问题中添加您的appsettings.json

标签: c# azure asp.net-core web-applications configuration


【解决方案1】:

这是我的想法。

为了解决它,我现在将应用程序重新部署到 Azure,但包含 appsettings.json,现在应用程序运行正常。

这意味着,您的应用设置很好,您的部署方式也很好。我们可以消除您部署或设置部署的方式出现问题的可能性。

我想知道 Configuration["Appsettings:Authorization"] 是否是读取 Azure 应用程序设置的正确方法,或者我在这里做错了什么。请指教。

这是正确的做法。此外,在本地运行和 Web 应用程序部署中,设置都可以正常读取(当您包含 appsettings.json 时)。

(例如,我在这里部署了一个身份验证应用程序 - https://github.com/Jay-study-nildana/APIServerDotNetCoreWithAuth0/blob/master/dotnetcoreapiserverwithauth0/Startup.cs),它与您正在做的事情完全相同。

怎么解决?

第 1 步 - 现在,如果真的很紧急,请将 appsettings.json 保留在您的主应用中,这样您的客户/公司就不会受到影响。

第 2 步 - 设置另一个 Web 应用程序,例如测试 Web 应用程序或暂存 Web 应用程序或其他东西,再试一次。我相信,当您使用 appsetting 值配置应用程序时,您犯了一个错误。

【讨论】:

  • 嗨@Jay,我检查了 Azure App 服务设置,它是一个 JSON 数组 - 您可以通过单击配置下的高级设置 -> 应用程序设置 -> 高级编辑来查看这一点。所以我必须将我的 appsettings 从嵌套 JSON 更改为简单的 JSON,例如 {"Appsettings":{"Authorization":":"value"} 中的 {"Authorization":"value","Client":"value"}并在我的代码中将其读取为 Configuration["Authorization"] 并且我重新部署了代码及其现在的工作。我了解 appsettings.json 对本地开发有好处,但我找不到相关文档来解释这一点,即使从 Microsoft 端.
  • 很高兴你能成功。关于 JSON 格式,嗯,你知道,微软文档中的这些微小细节可以让事情变得非常流畅。很多时候,都是反复试验和试验这些云的东西:)
猜你喜欢
  • 1970-01-01
  • 2020-06-17
  • 1970-01-01
  • 2022-07-31
  • 2023-02-24
  • 2017-01-17
  • 1970-01-01
  • 2018-12-21
  • 2018-09-13
相关资源
最近更新 更多