28. januar 2005 - 14:50Der er
9 kommentarer og 1 løsning
Opsætning til /db mappe samme sted som /wwwroot - hvordan ?
Hejsa...
Hvordan sætter jeg min iis på server 2003 op så jeg kan ha en mappe ved navn /db på "linie" med /wwwroot - så jeg kan lægge mine databaser et sikkert sted? Som man kender det fra hosting firmaerne.
Yderlig får jeg fejlen:
Server.MapPath() error 'ASP 0175 : 80004005'
Disallowed Path Characters
/test/person.asp, line 11
The '..' characters are not allowed in the Path parameter for the MapPath method.
Hvad i alverden skyldes det - kan man ikke bruge kommandoen ../ på en normal opsætning af iis?
Server 2003's IIS er som default sat op til ikke at tillade parentpath's, så hvis du vil benytte parent notation, skal du enten slå det fra under IIS, eller finde en anden metode til at traversere op i dit folderhierarki.
Jeg har for nylig benyttet mig at en metode, hvor jeg finde den absolutte sti til roden af mit site og og parser jeg stien (som er relativ, f.eks. ../db/database.mdb) ifht. roden af sitet. Det kræver lidt kode, men det fungerer også selv om der er "no parent path allowed" under IIS.
Okay det var så ikke lige det - tror mere det er noget i den retning softspot er inde på. Aner sq bare ikk lige hvor jeg kan slå det til, hvis jeg ikke vil scripte mg ud af det.
hooh -> jeg mente ikk cliche på den måde - har arbejdet sammen med cliche i en 5-6 år, så ved godt hvordan det fungere, men jeg mente bare på den måde deres mapper ligger, altså hvor /wwwroot/ og /db ligger "på linie" hvis du forstår. Så den ligger under roden og dermed ikke mulig at hente noget fra.
' ---------------------------------------------------------- ' Finder en sti på grundlag af en relativ reference. ' den relative reference starter altid fra roden af sitet. ' ---------------------------------------------------------- function getAbsPathFromRelPath(relPath) dim rootPath dim relPathElements
for i = 0 to ubound(relPathElements) if relPathElements(i) = ".." then ' fjern et mappeniveau niveau fra rootPath dim slashPos slashPos = instrrev(dbPath, "\") if slashPos > 0 then dbPath = mid(dbPath, 1, slashPos) end if elseif relPathElements(i) <> "" then if right(dbPath,1) <> "\" then dbPath = dbPath & "\" & relPathElements(i) else dbPath = dbPath & relPathElements(i) end if end if next
getAbsPathFromRelPath = dbPath end function
' BLOT TIL TEST response.Write getAbsPathFromRelPath("../db/test.mdb")
Jeg ved der er lidt arbejde i at sikre sig mod relative stier der ender udenfor roden af disken, men det kunne jo være en lille opgave til dig, futuregrafix ;)
Forstår ikke helt hvad jeg skal bruge din function til? Jeg vil gerne ha det til at fungere UDEN at scripte mig ud af det! Det kan ikke passe man ikk bare smide en mappe ved siden af wwwroot, og så tilgå den som man normalt gør med ../../db.mdb.
Det er da ingen grund til at bruge physical path til det?
Manage dit website og skift til fanen "home directory", tryk på knappen "Configuration...". I den dialog som nu åbner vælger du "Options" og checker "Enable parent paths".
Dette burde tillade at du benytter .. i stiangivelser.
Hmm... jeg troede det var normalt at give point til dem der gav dig løsningen på dit problem, ikke tage dem selv når man havde fået hvad man kom efter... ;)
Synes godt om
Ny brugerNybegynder
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.