Как прочитать параметр приложения службы приложений Azure в веб-API ASP.NET Core 6.0

Я работаю над приложением .NET Core 6.0 «Hello World», и оно будет развернуто как веб-служба Azure.

Я пытаюсь прочитать значение из Службы приложений Azure -> Конфигурация -> ApplicationSetting -> mykey, но не могу получить доступ к значению mykey после развертывания в службе приложений. Я могу прочитать значение mykey в локальном режиме во время отладки.

Тип проекта:

Я должен прочитать mykey в Program.cs. Как проще всего прочитать значение mykey, если это просто приложение для приветствия?

Program.cs:

using HelloWorldApi.Helpers;
using Microsoft.AspNetCore.Authentication.Certificate;
using Microsoft.AspNetCore.Server.Kestrel.Https;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
    
var provider = builder.Services.BuildServiceProvider();
var configuration = provider.GetRequiredService<IConfiguration>();

builder.WebHost.ConfigureKestrel(o =>
{
    o.ConfigureHttpsDefaults(o =>
    {
    });
}).ConfigureAppConfiguration((hostContext, builder) =>
{
    var settings = builder.Build();

    // I tried different ways but not getting value of mykey. 
    // This code is returning null
    var connectionString = configuration.GetValue<string>("mykey");
});

var app = builder.Build();

Можете ли вы добавить appsetting.json, пожалуйста

ravipatel 11.01.2023 03:26

Я не могу получить доступ к значению mykey после развертывания в службе приложений. Я могу прочитать значение mykey локально во время отладки.

F11 11.01.2023 03:31

В файле appsettings.json добавьте настройки как "AppSettings": { "mykey": "test" }

Harshitha 11.01.2023 03:48

С вашим кодом читайте это как var MyAppSettings = configuration.GetSection("AppSettings"); var AppsetVal = MyAppSettings.GetValue<string>("mykey");

Harshitha 11.01.2023 04:04

При наличии решения с вашим Appsettings, пожалуйста, проверьте один раз.

Harshitha 11.01.2023 06:22
Ускорьте разработку веб-приложений Laravel с помощью этих бесплатных стартовых наборов
Ускорьте разработку веб-приложений Laravel с помощью этих бесплатных стартовых наборов
Laravel - это мощный PHP-фреймворк, используемый для создания масштабируемых и надежных веб-приложений. Одним из преимуществ Laravel является его...
Что такое двойные вопросительные знаки (??) в JavaScript?
Что такое двойные вопросительные знаки (??) в JavaScript?
Как безопасно обрабатывать неопределенные и нулевые значения в коде с помощью Nullish Coalescing
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как сделать компонент справочного центра с помощью TailwindCSS
Как сделать компонент справочного центра с помощью TailwindCSS
Справочный центр - это веб-сайт, где клиенты могут найти ответы на свои вопросы и решения своих проблем. Созданный для решения многих распространенных...
Асинхронная передача данных с помощью sendBeacon в JavaScript
Асинхронная передача данных с помощью sendBeacon в JavaScript
В современных веб-приложениях отправка данных из JavaScript на стороне клиента на сервер является распространенной задачей. Одним из популярных...
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Отказ от ответственности: Эта статья предназначена только для демонстрации и не должна использоваться в качестве инвестиционного совета.
0
5
168
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проверьте приведенные ниже изменения в коде, чтобы прочитать значения из параметров приложения Azure.

В Program.cs,

Получение значений с помощью вашего кода.

 var AppsetVal = configuration.GetValue<string>("mykey")

ИЛИ

Из моего примера кода

var AppsetVal = builder.Configuration.GetValue<string>("mykey");

Мой appsettings.json файл:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*", 
  "mykey": "test"
}

Параметры в Azure:

Здесь я отображаю значение в контроллере API.

В WeatherForecastController.cs:

using Microsoft.AspNetCore.Mvc;

namespace WebApplication7.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {      
        private readonly ILogger<WeatherForecastController> _logger;
        private readonly IConfiguration Configuration;

        public WeatherForecastController(ILogger<WeatherForecastController> logger, IConfiguration configuration)
        {
            _logger = logger;
            Configuration = configuration;
        }

        [HttpGet(Name = "GetWeatherForecast")]
        public IEnumerable<WeatherForecast> Get()
        {
            //var MyAppSettings = Configuration.GetSection("AppSettings");

            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {              
                Date = DateTime.Now.AddDays(index),
                TemperatureC = Random.Shared.Next(-20, 55),
                Summary = Summaries[Random.Shared.Next(Summaries.Length)],
                myval = Configuration.GetSection("mykey").Value

            })
            .ToArray();
        }
    }
}

В WeatherForecast.cs добавьте

 public string? myval { get; set; }

Выходные данные развернутой службы приложений:

Я не получаю конфигурацию в builder.Configuration

F11 11.01.2023 13:48

Как вы проверяете значение развернутого приложения в файле Program.cs? Вы занимаетесь удаленной отладкой?

Harshitha 11.01.2023 14:07

Нет, удаленная отладка не выполняется, где вы используете MyAppSettings в методе контроллера? что такое версия dot net core вашего проекта

F11 11.01.2023 14:09

Вы получите значение из параметров приложения Azure только для развернутого приложения. Проверить значение можно только путем отображения или удаленной отладки.

Harshitha 11.01.2023 14:17

Я использую .NET Core 6.

Harshitha 11.01.2023 14:18

Игнорировать var MyAppSettings = Configuration.GetSection("AppSettings");. Я установил значение в myval.

Harshitha 11.01.2023 14:23

Пробовал несколькими способами. Дал вам пробный код, а также. Обновил ответ. Пожалуйста, проверьте сейчас.

Harshitha 11.01.2023 14:25

Другие вопросы по теме