Laden...

Wert auf Web.config lesen?

Erstellt von Golo Roden vor 19 Jahren Letzter Beitrag vor 19 Jahren 3.634 Views
Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 19 Jahren
Wert auf Web.config lesen?

Hallo,

ich möchte programmatisch einen benutzerdefinierten Wert aus der Datei Web.config lesen. Dazu habe ich diesen dort mittels

<add key="xyz" value="abc" />

abgelegt, unter dem Baum configuration > appSettings.

Im Programm versuche ich nun mittels

System.Configuration.ConfigurationSettings.AppSettings["xyz"]; darauf lesend zuzugreifen, was aber fehlschlägt.

Woran kann das liegen?

Die Datei Web.config befindet sich im gleichen Verzeichnis wie die DLL, aus der der Aufruf erfolgt. Macht es einen Unterschied, ob die Funktion in der DLL über eine ASPX-Seite über einen Webserver aufgerufen wird, oder über NUnit?

Viele Grüße,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

6.862 Beiträge seit 2003
vor 19 Jahren

Soweit ich weiß darf die web.config nicht im bin Verzeichnis(Verzeichnis wo die Dll's sind) liegen, sondern im Dokumentverzeichnis welches meistens das Root Verzeichnis ist.

Baka wa shinanakya naoranai.

Mein XING Profil.

165 Beiträge seit 2004
vor 19 Jahren

Hallo golo,

afaik muss die web.config im root Verzeichnis liegen, so wie talla es bereits antwortete...

Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 19 Jahren

Muss dazu die Anwendung schon im IIS oder XSP oder Cassini oder sonst was laufen? Oder geht das auch "einfach so"?

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

C
1.215 Beiträge seit 2004
vor 19 Jahren

ne, ein server muss schon laufen...
erst dadurch wird ja deine site zu ner application

grtz
chief

Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 19 Jahren

Hi!

Das heißt, ich kann in meinem NAnt-Script direkt nach dem Kompilieren keine Unit-Tests laufen lassen, die darauf angewiesen sind, dass eine Methode Werte aus eben dieser Datei liest?

Ich will die Anwendung ja schließlich erst testen und dann auf den Webserver kopieren.

Wie kann ich dieses Problem lösen?

Viele Grüße,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

165 Beiträge seit 2004
vor 19 Jahren

Indem Du Dir einen Test-Webserver nimmst, auf dem Du am besten auch noch debuggen kannst ==> IIS 🙂

Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 19 Jahren

Hallo!

Was mir daran noch nicht klar ist, ist, wieso es für NUnit einen Unterschied macht, ob ein Webserver läuft oder nicht.

NUnit liest doch einfach die DLL ein und ruft deren Methoden auf, oder nicht? Was hat das mit einem Webserver zu tun? Dieser würde doch gar nicht in Anspruch von NUnit genommen oder sehe ich da irgendetwas total falsch?

Danke,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

6.862 Beiträge seit 2003
vor 19 Jahren

Bei Webanwendungen liegt die Konfigurationsdatei im root Verzeichnis während die Dll's im Bin Verzeichnis sein müssen und sie heißt immer web.config.

Bei Windows Anwendungen dagegen muss dagegen die Konfigurationsdatei im gleichen Verzeichnis wie die ausführbare Datei sein und auch genauso heißen(mit .config natürlich dran). Und gerade diese Konventionen bringen das wahrscheinlich durcheinander, weil wenn du mit

System.Configuration.ConfigurationSettings.AppSettings["xyz"]; 

darauf zugreifen willst und tust das nicht über nen Webserver wird erstmal angenommen das die Konfigurationsdatei wie die Anwendungsdatei heißt und im gleichen Verzeichnis liegt. Das haut bei Webanwendungen natürlich nicht hin und deshlab schlägt der Versuch die Einstellungen zu lesen natürlich fehl mit einer web.config.

Vielleicht klappts beim testen die web.config einfach so zu benennen wie die zu testende Dll, aber ich bezweifel es stark.
Lass lieber nen Testserver laufen.

Baka wa shinanakya naoranai.

Mein XING Profil.