2015-02-16 7 views
6

Mam aplikację internetową wdrożoną na IIS. Ta aplikacja WWW zużywa bibliotekę, która chce uzyskać dostęp do pliku Web.config.Przeczytaj web.config z biblioteki używanej przez webapplicaion wdrożoną przy użyciu IIS

przykład: Foo.dll jest aplikacji internetowych rozmieszczone IIS Foo.Utility.dll zużywają Foo.dll

Jest to kod w Foo.Utility namepsace, który chce uzyskać dostęp do sieci .config z zastosowania Foo config i odczytać wartości

Configuration config = WebConfigurationManager.OpenWebConfiguration(null); 
string cacheDir = config.AppSettings.Settings["abc"].Value; 

Obecnie config.FilePath = C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ config \ web.config

Zmieniono mojego kodu :

Configuration config = WebConfigurationManager.OpenWebConfiguration(Assembly.GetCallingAssembly().Location); 
string cacheDir = config.AppSettings.Settings["abc"].Value; 

teraz mój Assembly.GetCallingAssembly() Lokalizacja jest:. C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 62f5c902 \ 849205ff \ assembly \ DL3 \ c28d4647 \ 10e128d3_7449d001 \ foo.dll

Czy ktoś może mi pomóc zrozumieć, jak odczytać plik web.config z miejsca, w którym moja aplikacja jest wdrażana przy użyciu usług IIS?

Aby uzyskać więcej informacji lub pytanie nie jest jasne, komentarz poniżej. Zaktualizuje go

Odpowiedz

3

Musisz użyć ConfigurationManager z System.Configuration. Po pierwsze, musisz dodać odwołanie do montażu System.Configuration.dll, a następnie używać go tak:

using System.Configuration; 
... 
string valueOfAbc = ConfigurationManager.AppSettings["abc"]; 

ConfigurationManager odczyta plik konfiguracyjny z hosta aplikacji. W twoim przypadku plik web.config.

referencyjny:

  1. ConfigurationManager Class
  2. Application Configuration Files
+1

Należy pamiętać, że wymaga to odniesienie do 'montażu System.Configuration.dll', która nie odwołuje domyślnie. – mason

+0

@mason Masz rację. Będę edytować odpowiedź. Dzięki! –

Powiązane problemy