In einer Anwendung entwickle ich ASP.Net. In dieser Anwendung haben wir viele AppSettings verwendet. In der anfänglichen Entwicklung haben wir ConfigurationManager.AppSettings [""] verwendet. Im Laufe der Entwicklung haben wir jedoch eine Dienstprogrammklasse erstellt, in der wir für jede AppSettings eine statische Eigenschaft definieren. Dann begannen die Probleme zu kommen. Wenn jetzt die Anwendung auf dem Testserver bereitgestellt wird und wir alle Einstellungen in AppSettings ändern, hat dies keine Auswirkungen, wenn wir den IIS nicht neu starten. Hier ist das folgende Code-Snippet, mit dem ich die statische Eigenschaft von AppSettings erstelle.Das Ändern von AppSetting hat keine Auswirkungen auf die Anwendung
public static class AppSettingsUtil
{
public static string Log4Net
{
get
{
return ConfigurationManager.AppSettings["Log4Net"];
}
}
}
Einer des Grundes, warum ich denken konnte, ist, dass, Es ist eine statische Eigenschaft, so dass es einmal an in seiner gesamten Lebensdauer so beim nächsten Mal initialisiert werden kann es nicht Werte aus appsettings werden kann abgerufen werden.
Schöne Ergänzung. Dies wird viel helfen. –
Eine Sache zu beachten. Wenn Sie configSource verwenden, können Sie keine Einträge im appSettings-Bereich Ihrer web.config haben. Nur in Ihrer externen Datei. Wenn Sie den Ansatz file = verwenden, können Sie Einträge an beiden Stellen haben ... Sie müssen IIS jedoch neu starten (oder web.config ändern), damit Ihre externe Datei gelesen werden kann. –
Danke für die Erklärung der "Datei" vs "ConfigSource" Bit Ed! Ich schlug auf meinen Kopf, bis ich das gefunden hatte! –