<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-to-automatically-refresh-configurations-with-azure-app-configuration-in-asp-net-core-9eq7nz4ky" -->

---
title: How to automatically refresh configurations with Azure...
description: Explains how to make Azure App Configuration values dynamic in ASP.NET Core so applications pick up changes without restarting. Covers sentinel values as a...
canonical: https://daily.dev/posts/how-to-automatically-refresh-configurations-with-azure-app-configuration-in-asp-net-core-9eq7nz4ky
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How to automatically refresh configurations with Azure App Configuration in ASP.NET Core | daily.dev
og:description: Explains how to make Azure App Configuration values dynamic in ASP.NET Core so applications pick up changes without restarting. Covers sentinel values as a...
og:url: https://daily.dev/posts/how-to-automatically-refresh-configurations-with-azure-app-configuration-in-asp-net-core-9eq7nz4ky
og:image: https://api.daily.dev/og/posts/9Eq7nZ4ky.png
og:image:alt: How to automatically refresh configurations with Azure App Configuration in ASP.NET Core
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How to automatically refresh configurations with Azure App Configuration in ASP.NET Core

**[Code4IT](https://daily.dev/sources/code4it)** · 10 min read · 0 upvotes · 0 comments

## Summary

Explains how to make Azure App Configuration values dynamic in ASP.NET Core so applications pick up changes without restarting. Covers sentinel values as a versioning key to trigger a full refresh, the ConfigureRefresh setup with cache expiration, and switching from IOptions to IOptionsMonitor to access and react to updated values via OnChange. Also discusses trade-offs between short and long cache expiration times, dirty-state risks across multiple services, and Azure App Configuration pricing tier request limits.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.code4it.dev/blog/azure-app-configuration-refresh-config>

## Questions this post answers

### How do I make ASP.NET Core pick up updated Azure App Configuration values without restarting the app?

Use IOptionsMonitor instead of IOptions, and configure ConfigureRefresh with a sentinel key registered via refreshOptions.Register, setting refreshAll to true so all values reload when the sentinel changes. Set a cache expiration time (default 30 seconds) with SetCacheExpiration, then call builder.Services.AddAzureAppConfiguration() and app.UseAzureAppConfiguration() to enable polling-based refresh.

_daily.dev surfaces practical guides like this for developers wiring up live config reloads in ASP.NET Core._

### What is a sentinel key in Azure App Configuration and why do I need one?

A sentinel is a version key, typically a UTC timestamp string, that you update last after changing other configuration values so ASP.NET Core knows to reload the full set of configurations as a single, consistent operation. Without it, partial updates could create an invalid state, like a new BaseUrl paired with an old API key, since Azure App Configuration updates values one by one rather than in a batch.

_Developers designing safe config rollout strategies can find walkthroughs like this through daily.dev._

### How many requests per day does Azure App Configuration allow on the Free tier versus Standard tier?

The Free tier allows 1000 requests per day, while the Standard tier allows 30,000 requests per hour per replica. Using the default 30-second cache expiration with continuous application traffic results in roughly 2880 requests per day, which already exceeds the Free tier limit, so cache expiration timing must be chosen carefully to avoid hitting these caps.

_Teams sizing config refresh intervals against Azure pricing limits often track details like this on daily.dev._

## Similar posts on daily.dev

- [Reloading appsettings.json Without Restarting the Application](https://daily.dev/posts/reloading-appsettings-json-without-restarting-the-application-6i5r0mtnd) · No Dogma Blog \(Bryan Hogan\) · 1 upvotes · 0 comments
- [Coding Azure 23: Reading Settings from App Configuration](https://daily.dev/posts/coding-azure-23-reading-settings-from-app-configuration-4d6bh4snq) · Telerik · 2 upvotes · 0 comments
- [Coding Azure 22: Add Configuration Info to App Config Service](https://daily.dev/posts/coding-azure-22-add-configuration-info-to-app-config-service-ndbnlxdqi) · Telerik · 0 upvotes · 0 comments

---

Tags: [#c#](https://daily.dev/tags/c#), [#aspnet](https://daily.dev/tags/aspnet)

[View this post on daily.dev](https://daily.dev/posts/how-to-automatically-refresh-configurations-with-azure-app-configuration-in-asp-net-core-9eq7nz4ky)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How to automatically refresh configurations with Azure App Configuration in ASP.NET Core","url":"https://daily.dev/posts/how-to-automatically-refresh-configurations-with-azure-app-configuration-in-asp-net-core-9eq7nz4ky","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-to-automatically-refresh-configurations-with-azure-app-configuration-in-asp-net-core-9eq7nz4ky"},"datePublished":"2026-10-04T13:07:23.325Z","dateModified":"2026-10-04T13:14:24.844Z","description":"Explains how to make Azure App Configuration values dynamic in ASP.NET Core so applications pick up changes without restarting. Covers sentinel values as a...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/52dddb11ec9aefe6dd5ddefabb496e02?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/52dddb11ec9aefe6dd5ddefabb496e02?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Code4IT","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Code4IT","logo":"https://media.daily.dev/image/upload/s--OaaG4G10--/f_auto,q_auto/v1791119049/logos/code4it?_a=BAMAMicg0","url":"https://daily.dev/sources/code4it"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/how-to-automatically-refresh-configurations-with-azure-app-configuration-in-asp-net-core-9eq7nz4ky","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"c#,aspnet","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Code4IT","item":"https://daily.dev/sources/code4it"},{"@type":"ListItem","position":3,"name":"How to automatically refresh configurations with Azure App Configuration in ASP.NET Core"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-to-automatically-refresh-configurations-with-azure-app-configuration-in-asp-net-core-9eq7nz4ky#faq","mainEntity":[{"@type":"Question","name":"How do I make ASP.NET Core pick up updated Azure App Configuration values without restarting the app?","acceptedAnswer":{"@type":"Answer","text":"Use IOptionsMonitor instead of IOptions, and configure ConfigureRefresh with a sentinel key registered via refreshOptions.Register, setting refreshAll to true so all values reload when the sentinel changes. Set a cache expiration time (default 30 seconds) with SetCacheExpiration, then call builder.Services.AddAzureAppConfiguration() and app.UseAzureAppConfiguration() to enable polling-based refresh. daily.dev surfaces practical guides like this for developers wiring up live config reloads in ASP.NET Core."}},{"@type":"Question","name":"What is a sentinel key in Azure App Configuration and why do I need one?","acceptedAnswer":{"@type":"Answer","text":"A sentinel is a version key, typically a UTC timestamp string, that you update last after changing other configuration values so ASP.NET Core knows to reload the full set of configurations as a single, consistent operation. Without it, partial updates could create an invalid state, like a new BaseUrl paired with an old API key, since Azure App Configuration updates values one by one rather than in a batch. Developers designing safe config rollout strategies can find walkthroughs like this through daily.dev."}},{"@type":"Question","name":"How many requests per day does Azure App Configuration allow on the Free tier versus Standard tier?","acceptedAnswer":{"@type":"Answer","text":"The Free tier allows 1000 requests per day, while the Standard tier allows 30,000 requests per hour per replica. Using the default 30-second cache expiration with continuous application traffic results in roughly 2880 requests per day, which already exceeds the Free tier limit, so cache expiration timing must be chosen carefully to avoid hitting these caps. Teams sizing config refresh intervals against Azure pricing limits often track details like this on daily.dev."}}]}
```

