Avatar billede alex_sleiborg Nybegynder
02. februar 2008 - 14:16 Der er 10 kommentarer og
1 løsning

Problemer med at gemme xml fil

Hej

Jeg har problemer med at gemme en xml konfigurations fil. Filen indeholder oplysninger om web applikationen, så det er derfor vigtigt at man ikke kan se eller rette i denne fil fra en browser, men kun rette i den vha. applikationen. Men hvis jeg dynamisk opretter en xml fil fra min applikation, så bliver den ikke gemt på min udviklings maskine? Det har vel noget med web serveren at gøre, som jo bare kører lokalt på maskinen, eller hvad? Jeg forventer når jeg gemmer sådan en fil, så skal den ligge i min projekt mappe. Her er code behind i C#

        public void MakeNewAppFile()
        {
            XmlDocument docXML = new XmlDocument();

            docXML.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<Gallery>" +
                    "<Users>" +
                    "</Users>" +
                    "<Configuration>" +
                    "</Configuration>" +
                "</Gallery>");

            docXML.Save(@"AppFile.xml");
        }
Avatar billede erikjacobsen Ekspert
02. februar 2008 - 16:11 #1
Det er jo ikke til at vide hvad aktuelt katalog er på webserveren. Prøv først at skrive den fulde sti, og selvfølgelig checke om der er skriveadgang.

En .xml-fil der ligger sammen med .aspx og billeder osv på serveren, kan ses i en browser, hvis man kender navnet.
Avatar billede alex_sleiborg Nybegynder
02. februar 2008 - 17:02 #2
Er der ikke en måde så jeg kan undgå at folk kan se filen, hvis de kender navnet?

Jeg vil gerne gemme den under App_Data. Selve placeringen på mit drev er jo under websites/projektnavn. Så den skal jo gerne gemmes samme sted, selvom det er på webserveren eller på udviklingsmaskinen?
Avatar billede alex_sleiborg Nybegynder
02. februar 2008 - 18:06 #3
Jeg burde vel også kunne gøre således

if(File.Exist(@"Default.aspx"))
  lbl.Text = "Findes";
else
  lbl.Text = "Findes Ikke";

Men det kan man heller ikke, hvordan findes jeg den sti, hvor filerne som mit website indeholder?
Avatar billede alex_sleiborg Nybegynder
02. februar 2008 - 19:40 #4
Den skal se således ud
HttpContext.Current.Server.MapPath("AppFile.xml")

Men kan jeg gøre noget ved, at den xml fil er skjult for slut brugeren?
Avatar billede erikjacobsen Ekspert
02. februar 2008 - 19:56 #5
På mange webhoteller kan du oprette filer og mapper udenfor "wwwroot" (som kan hedde moget amdet), altså udenfor selve webapplikationens katalog. Og ja, mappath giver dig den fulde sti.
Avatar billede alex_sleiborg Nybegynder
02. februar 2008 - 19:57 #6
Men er det en holdbar måde at gemme applikations configuration i en xml fil? Den skal nemlig ikke bruge database
Avatar billede erikjacobsen Ekspert
02. februar 2008 - 20:10 #7
Ja, bestemt - det egner XML sig fint til. Se bare web.config. Du kunne evt putte de data i web.config. Og jeg har nu aldrig prøvet, men måske skjuler IIS alle ***.config filer, så de ikke kan ses af brugeren.
Avatar billede alex_sleiborg Nybegynder
03. februar 2008 - 10:25 #8
Okay, jeg takker mange gange. Smid et svar :)
Avatar billede erikjacobsen Ekspert
03. februar 2008 - 10:39 #9
Ingen point til mig, tak. Svar selv, accepter eget svar.
Avatar billede alex_sleiborg Nybegynder
03. februar 2008 - 10:54 #10
Okay, men mange tak for svarene:)
Avatar billede erikjacobsen Ekspert
03. februar 2008 - 11:42 #11
Og så er der lige det sjove med applikationsgenstart hvis blot een fil ændres i applikationens katalog. Det kan vist slås fra. Ændrer man kun sjældent, er det ikke noget stort problem, ellers kan det anbefales at lægge de flade filer man ændrer udenfor  applikationens katalog.
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