2015-02-16 6 views
6

Ich habe eine Webanwendung auf IIS bereitgestellt. Diese Webanwendung verbraucht eine Bibliothek, die auf die Datei Web.config zugreifen möchte.Lesen Sie web.config aus der Bibliothek, die von der mit iIS bereitgestellten Webanwendung verwendet wird

Beispiel: Foo.dll ist die Web-Anwendung auf IIS eingesetzt Foo.Utility.dll

von Foo.dll verbraucht wird

Es in Foo.Utility namepsace ein Stück Code, der auf das Web zuzugreifen will .config von Foo Anwendung und lesen Sie die Konfigurationswerte

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

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

meinen Code geändert, um :

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

Jetzt ist mein Assembly.GetCallingAssembly() Lage ist. C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 62f5c902 \ 849205ff \ assembly \ dl3 \ c28d4647 \ 10e128d3_7449d001 \ foo.dll

Kann mir jemand helfen zu verstehen, wie man die web.config von dem Ort liest, an dem meine Anwendung mit IIS bereitgestellt wird?

Für weitere Informationen oder wenn die Frage nicht klar ist, dann kommentieren Sie unten. Wird es aktualisieren

Antwort

3

Sie müssen ConfigurationManager von System.Configuration verwenden. Zunächst werden Sie einen Verweis auf System.Configuration.dll Assembly hinzufügen müssen, und es dann wie folgt verwenden:

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

Konfigurationsmanager wird die Konfigurationsdatei von der Anwendung des Host gelesen. In Ihrem Fall die Datei web.config.

Referenz:

  1. ConfigurationManager Class
  2. Application Configuration Files
+1

Sie sollten beachten, dass dies eine Referenz erfordert 'System.Configuration.dll' Versammlung, die nicht standardmäßig verwiesen wird. – mason

+0

@ Mason Sie haben Recht. Ich werde die Antwort bearbeiten. Vielen Dank! –

Verwandte Themen