Avatar billede Greenland Nybegynder
10. februar 2009 - 18:20 Der er 4 kommentarer og
1 løsning

ConfigurationSettings.AppSettings

Hej,

Jeg har et lille problem med at læse fra configurations filen i c#

I min site kan man konfigurere sin connectionstring til databasen, og teste den og så loade siden som så anvender strengen til at koble til databasen.

Mit problem er at når jeg læser strengen efter at have gemt den, at den beholder den gamle værdi.

Jeg gemmer strengen således:
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath("database.config"));
XmlElement TempNode = xmldoc.SelectSingleNode("appSettings//add") as XmlElement;
            if (TempNode != null)
                TempNode.SetAttribute("value", connectionString);
            xmldoc.Save(Server.MapPath(@"database.config"));

... og dette gemmer strengen fint i min database.config fil på harddisken.

Umiddelbart efter loades min default page som aflæser database.config således:

string connectionString  = ConfigurationSettings.AppSettings.Get("keynavn");

Nu skulle man tro at min connectionString ville indeholde min nye værdi men det gør den ikke.

Noget forslag til løsning ?

mvh

Greenland
Avatar billede bvli Praktikant
10. februar 2009 - 19:01 #1
Men læser din ConfigurationSettings ikke web.config?

/B
Avatar billede aaberg Nybegynder
10. februar 2009 - 20:49 #2
Jeg vil tro at bvli har ret. En almindelig asp.net webside bruger web.config, og ikke database.config.
Avatar billede Greenland Nybegynder
10. februar 2009 - 22:49 #3
Hej,

jo men inde i min webconfig har jeg følgende:
<appSettings file="database.config"/>
og det bliver aflæst med
string connectionString  = ConfigurationSettings.AppSettings.Get("keynavn");

og når jeg gemmer min streng så vises den nye værdi i database.config filen hvis jeg fx åbner den i notepad, men den nye værdi ses desværre ikke når jeg aflæser den umiddelbart efter.  Kan det være noget med cache eller...

mvh

Greenland
Avatar billede bvli Praktikant
11. februar 2009 - 10:30 #4
Hej.

Jo - jeg vil mene at du skal "touch'e" din web.config. Settings bliver indlæst når applikationen starter op. Hvis web.config ændres vil din applikation genstartes af asp.net. Så uden at vide det med sikkerhed vil jeg mene at din web.config skal ændres, så applikationen bliver genindlæst.

Men måske du skulle overveje om det er den rigtige tilgang til problemet. At genstarte webapplikationenen ved et request er generelt en rigtig dårlig ide. Hva' med at gemme connectionstring'en i en application-wide variabel, og så hente og ændre den derfra i stedet for i din applikationens configuration?

/B :)
Avatar billede Greenland Nybegynder
18. februar 2009 - 10:48 #5
Jeg bliver nødt til at køre iisreset, for at få den rigtige værdi, så jeg ved ikke helt ....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester