Avatar billede futuregrafix Nybegynder
28. januar 2005 - 14:50 Der 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?

På forhånd mange tak...

Mvh
Mark
Avatar billede hooh Nybegynder
28. januar 2005 - 15:32 #1
hvis du stiller mappen sammme sted som wwwroot, så skal du bruge den fysiske sti.

"c:\inetpub\db\db.mdb"
Avatar billede futuregrafix Nybegynder
28. januar 2005 - 15:59 #2
Jamen så får jeg jo:
Invalid Path

/test/liste.asp, line 11

The Path parameter for the MapPath method must be a virtual path. A physical path was used.


Den ville da ikke kunne komme til at virke????
Kan man ikke bruge eks. ../../ osv.??? Det kan man da ved cliche og b-one osv.??

Tak for hjælpen...
Avatar billede hooh Nybegynder
28. januar 2005 - 17:02 #3
hvis du skal bruge db-mappen, så kan du ikke bruge server.Mappath()

Så skal du bruge den fysiske sti..

fandt denne her på eksperten

det er også cliche.dk

http://www.eksperten.dk/spm/583125
Avatar billede softspot Forsker
28. januar 2005 - 18:45 #4
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.
Avatar billede futuregrafix Nybegynder
29. januar 2005 - 12:50 #5
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.

På forhånd tak
Avatar billede softspot Forsker
29. januar 2005 - 13:15 #6
Prøv evt. med dette script:

' ----------------------------------------------------------
' 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

  rootPath = Server.MapPath("/")
  dbPath = rootPath
  relPathElements = Split(relPath, "/")
 
  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 ;)
Avatar billede futuregrafix Nybegynder
29. januar 2005 - 13:21 #7
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?
Avatar billede softspot Forsker
29. januar 2005 - 13:37 #8
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.

Er det så det du er ude efter da?
Avatar billede futuregrafix Nybegynder
29. januar 2005 - 14:19 #9
Mange tak - det var det jeg var ude efter :D

TAK!
Avatar billede softspot Forsker
29. januar 2005 - 16:23 #10
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... ;)
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
Kurser inden for grundlæggende programmering

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