source

구성 관리자.앱 설정 캐싱

factcode 2023. 10. 31. 22:55
반응형

구성 관리자.앱 설정 캐싱

IIS가 Configuration Manager를 캐시한다는 것을 알고 있습니다.web.config가 변경될 때까지 디스크를 한 번만 읽도록 AppSettings.이것은 성능을 위해서 하는 것입니다.

다음 위치에 있는 사람:

http://forums.asp.net/p/1080926/1598469.aspx#1598469

라고 했습니다.NET Framework는 app.config에 대해서는 동일한 작업을 수행하지 않지만 모든 요청에 대해 디스크에서 읽습니다.하지만 믿기가 힘들어요 왜냐면 더 느려질 테니까요그렇지 않으면 제가 작성한 콘솔/Windows 양식/Windows 서비스를 모두 수정해야 합니다.

업데이트 상기 링크된 포럼에서 사람들이 한 말을 잘못 이해한 것에 대해 유감스럽게 생각합니다.

빠른 테스트를 통해 이러한 설정은 응용 프로그램 시작 시에만 로드되는 것으로 보입니다.

//edit the config file now.
Console.ReadLine();

Console.WriteLine(ConfigurationManager.AppSettings["ApplicationName"].ToString());
Console.WriteLine("Press enter to redisplay");

//edit the config file again now.
Console.ReadLine();
Console.WriteLine(ConfigurationManager.AppSettings["ApplicationName"].ToString());
Console.ReadLine();

모든 출력이 동일하게 유지됩니다.

먹어봐.

ConfigurationManager.RefreshSection("appSettings")

파일 이름 주의(빈 폴더)

일반 파일 이름: appname.exe.config

if debug mode : appname.vshost.exe.구성

그것이 그러는지 안 그러는지는 중요하지 않습니다.성능 문제가 없으면 수정하지 마십시오.

앱이 실행되는 동안 파일을 변경하면 쉽게 확인할 수 있듯이, 애플리케이션 시작 시 애플리케이션 구성 파일(MyApp.exe.config)을 한 번 읽어줍니다.

OP가 언급한 포럼 게시물의 논평은 다음과 같습니다.

Web.config에 대한 값은 응용 프로그램이 시작될 때 캐시/메모리에 저장되므로 Web.config에 변경 사항이 있을 때 응용 프로그램이 다시 시작됩니다.이는 Web.config에만 적용되며, 사용할 수 있는 다른 모든 .config 파일은 기본적으로 디스크에서 액세스됩니다.

이 코멘트는 ASP에서 web.config 이외의 config 파일을 의미하는 것으로 해석하겠습니다.NET 응용프로그램은 기본적으로 디스크에서 액세스합니다.마찬가지로 WinForms/Console 응용 프로그램의 MyApp.exe.config 이외의 구성 파일도 기본적으로 디스크에서 액세스합니다.

이 설명은 MyApp.exe.config가 기본적으로 디스크에서 읽혀진다는 것을 의미하지 않습니다.

AppSettings가 캐시됩니다.추가 캐싱을 통해 이름값 수집 조회를 제한함으로써 성능을 향상시킬 수 있습니다.

참조: DotNetPearls 정적 구성 패턴

John의 말처럼 실제로 공연이 히트하는 것을 보고 있는 경우에만 이 작업에 더 많은 시간을 할애할 수 있습니다.

또한 이러한 응용 프로그램은 구성을 메모리에 저장하고 구성 내에서 변경 사항을 확인하려면 응용 프로그램을 다시 시작해야 할 것이라고 확신합니다.

남은 미스터리에 대한 추가적인 읽기를 위해.

언급URL : https://stackoverflow.com/questions/389361/configurationmanager-appsettings-caching

반응형