Как обновить свойства в ASP.NET Основная услуга (DI)

#c# #asp.net-core #botframework #azure-cosmosdb

#c# #asp.net-ядро #botframework #azure-cosmosdb

Вопрос:

У меня есть чат-бот, данные для чат-бота хранятся в базе данных Azure Cosmos. Если я изменю данные в Cosmos DB, мне придется перезапустить свое веб-приложение, потому что служба, используемая для извлечения данных из Cosmos, зарегистрирована Startup.cs как одноэлементная.

Итак, мое требование — обновить свойства сервиса (данные) из Cosmos без перезапуска приложения; также это не должно приводить к тупиковой ситуации.

Может ли кто-нибудь помочь мне со способом достижения этой цели?

Комментарии:

1. что-то может быть подключено только при запуске приложения, например, политика CORS и т. Д. В старом asp.net мы используем, чтобы положить app_offline.htm до завершения нового развертывания. это, кажется, все еще доступно, как я видел docs.microsoft.com/en-us/aspnet/core/host-and-deploy /…

2. Похоже, что ваш клиент CosmosDB кэширует результаты своих запросов. Вы не должны этого делать и каждый раз запрашивать базу данных, чтобы получать самые последние результаты. Таким образом, ваш клиент все еще может быть синглетом.

3. Поможет ли вам приведенный ниже ответ?

Ответ №1:

CosmosClient предоставляет логическое представление учетной записи Azure Cosmos DB на стороне клиента. Этот клиент можно использовать для настройки и выполнения запросов в службе базы данных Azure Cosmos DB.

CosmosClient является потокобезопасным. Рекомендуется поддерживать один экземпляр CosmosClient за все время существования приложения, что обеспечивает эффективное управление соединениями и производительность.

Клиент CosmosDB получит данные, которые фактически присутствуют в базе данных, если вы не кэшируете их. Кроме того, убедитесь, что вы используете правильный уровень согласованности и избыточности.

Комментарии:

1. Помогает ли это вам?