Laden...

web.config mit externem Programm ändern

Erstellt von Tombi vor 13 Jahren Letzter Beitrag vor 13 Jahren 858 Views
T
Tombi Themenstarter:in
1 Beiträge seit 2010
vor 13 Jahren
web.config mit externem Programm ändern

verwendetes Datenbanksystem: XML

Hallo,
ich möchte web.configs, die immer gleich aussehen (bis auf die values) per Programm ändern.
Hierzu habe ich mich bereits stundenlang durch sämtliche Foren geklickt und alles Mögilche ausprobiert, aber es will einfach nicht hinhauen.
die Klasse die die Änderung durchführen soll sieht folgendermaßen aus:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;


namespace WindowsFormsApplication2
{
    class Speicherung
    {
     
       
        public void save(String key, String value, String pfad)
        {
         
            
            try
            {


                // Config laden
                XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.Load(pfad);

     

                // Zeile finden, ändern und Config speichern
            foreach (XmlNode xmlNode in xmlDocument.SelectNodes("/configuration/appSettings/add"))
                {

                    if (xmlNode.Attributes["key"].Value == key)
                    {
                        xmlNode.Attributes["value"].Value = value;
                        break;
                    }
                } 

                xmlDocument.Save(pfad);

            }
            catch (Exception e) { }
        }
    } 
}

Die Web.config sieht ca. folgendermaßen aus:


<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<appSettings>
<add key="ipAdresseWebServer" value="XXX.XXX.XXX.XXX:XX" />
</appSettings>
</configuration>

Leider funktioniert das nicht, weil er nicht in die Foreach-Schleife reingeht sondern gleich zum speichern des Dokuments übergeht.
Habe auch schon viele andere Möglichkeiten die ich in Foren gefunden hab getestet und kriege es einfach nicht hin das value von "XXX.XXX.XXX.XXX:XX" durch das der Methode übergebene value zu ersetzen.

Weiß jmd von euch was ich falsch mache?
Vielen Dank schonmal.

Gelöschter Account
vor 13 Jahren

wenn es garnicht erst in die foreach geht würde ich mal behaupten das etwas mit deinem "selectNodes" nciht stimmt? evtl findet er ncihts? oder dein suchstring ist falsch?

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

da es sich ja um web.config-Dateien handelt, schau Dir mal den WebConfigurationManager (in System.Web.Configuration) an, der ist speziell dafür gemacht.
Ich weiß jetzt nicht 100% ob der auch in einer Nicht-Webanwendung funktioniert, vermute es aber stark.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

1.433 Beiträge seit 2006
vor 13 Jahren

Ich weiß jetzt nicht 100% ob der auch in einer Nicht-Webanwendung funktioniert, vermute es aber stark.

Funktioniert, wenn man nicht "Client-Profile" als TargetFrameWork in den Eigenschaften des Projektes angegeben hat. Dann kann man unter den References auch die System.Web DLL referenzieren.

Vielleich noch interessante Links zum WebConfigurationManager:

WebConfigurationManager Members

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt