Avatar billede Kim Neesgaard Seniormester
17. november 2005 - 12:11 Der er 17 kommentarer og
1 løsning

Cannot use a leading TO PRIKKER to exit above the top directory

I ASP kan man bruge

Dim objConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & server.mappath("TO PRIKKER/qccdatabases/AppHits.mdb") & ";")

men - har jeg læst - af sikkerhedsmæssige grunde kan man i ASP.NET ikke bruge to prikker. De TO PRIKKER skal læses som to punktummer for at gå to niveauer op, men det forbyder eksperten mig at skrive!

Eksperten har 4 indlæg om dette og angiver to løsningsforslag:

1/ Indsætte en sti i web.config
2/ Bruge @/

men jeg kan ikke få nogen af dem til at virke.

Mit spørgsmål er nu: hvordan skriver man konkret ovennævnte, så det virker i  ASP.NET?
Avatar billede websam Nybegynder
17. november 2005 - 12:25 #1
Jeg bruger følgende og det virker :

Dim StrPath As String = "C:\din\sti\til\database.mdb"
Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & StrPath
aConn = New OleDbConnection(ConnectionString)
aConn.Open()

Ved ikke om du kan bruge det til noget ?

/Websam
Avatar billede dr_chaos Nybegynder
17. november 2005 - 12:26 #2
prøv med
Dim objConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & server.mappath("/TO PRIKKER/qccdatabases/AppHits.mdb") & ";")
Avatar billede Kim Neesgaard Seniormester
17. november 2005 - 16:27 #3
websam -> Da jeg har et devområde og et testområde med hver sin absolutte sti - men med samme relative sti - skal det være en dynamisk sti.

dr_chaos -> Så skriver den stadig 'Cannot use a leading .. to exit above the top directory.'
Avatar billede websam Nybegynder
17. november 2005 - 16:38 #4
Så er det da kun at skifte stien når du skifter over til testområde !?!

/Websam
Avatar billede Kim Neesgaard Seniormester
17. november 2005 - 20:13 #5
Jeg skifter tit mellem dev og test og har flere applikationer, så jeg vil helst ikke skulle skulle huske den slags.
Avatar billede innercitydk Nybegynder
18. november 2005 - 10:07 #6
Er det ikke bedst at gå ud fra roden af dit websted og helt droppe ..?
Ved at skrive / i starten af din DB sti er du jo i roden. Jeg kender problemet med at skulle skrive en anden sti i forbindelse med en test app. Du kan jo også bare lave en config klasse som du inkluderer som dll. her kan du så evt. ligge begge stier ind, og lave en fancy if sætning der med try catch vælger den ene frem for den anden alt afhængig af hvilken af dem der er hul igennem til. Så længe du tester kan det da spare dig for en del tid.
Avatar billede Kim Neesgaard Seniormester
18. november 2005 - 11:10 #7
innercity -> Det lyder smart, men er nok lidt for 'langhåret' med mit nuværende videnniveau!!
Avatar billede innercitydk Nybegynder
18. november 2005 - 11:19 #8
hvordan gør du lige pt. skriver du stien hver gang du skal have tilgang til db? altså så det skal ændres mange forskellige steder.
Avatar billede Kim Neesgaard Seniormester
18. november 2005 - 12:14 #9
Nej - på webserveren accepterer den (mærkeligt nok) .., men når jeg kører lokalt får jeg fejlmeldingen. Jeg vil dog gerne køre på den 'rigtige måde' på webserveren og også have det til at virke, når jeg kører lokalt.
Avatar billede innercitydk Nybegynder
06. december 2005 - 14:27 #10
Jeg kom lige til at tænke på hvor din app ligger på lokalserveren? Hvis den ligger i iis mappen wwwroot burde det svare til dit webhotel, men hvis den ligger i yderligere en undermappe virker det ikke!
Avatar billede Kim Neesgaard Seniormester
07. december 2005 - 13:52 #11
Jeg bruger ASP.NET Web Matrix og den ligger netop i yderligere en undermappe.
Avatar billede innercitydk Nybegynder
07. december 2005 - 14:35 #12
Så er det der problemet opstår.. Når du laver / på din lokalserver hopper den helt ud i roden, og ikke i den mappe din app ligger i. Du kan omgå problemet ved at flytte din database ud af app mappen, og ligge den i wwwroot mappen på din lokale server eks: wwwroot/app/db -> wwwroot/db

Vh
Avatar billede innercitydk Nybegynder
09. december 2005 - 13:58 #13
hjalp det?!

Vh
Avatar billede Kim Neesgaard Seniormester
10. december 2005 - 13:06 #14
Det ligger på min arbejdsmaskine - prøver på mandag!
Avatar billede innercitydk Nybegynder
27. januar 2006 - 11:41 #15
Hva så Needgaard fik du det nogensinde til at virke ;)
Avatar billede Kim Neesgaard Seniormester
28. januar 2006 - 12:13 #16
Jeg har desværre ikke haft tid til at afprøve det, men har bestemt ikke glemt det, da jeg stadig bruger prikkerne. Bestræber mig på at prøve dit råd i næste uge.
Avatar billede Kim Neesgaard Seniormester
17. marts 2006 - 15:34 #17
Hej igen efter lang tid!

Nu har jeg fået afprøvet wwwroot/db og det virker.

Forsinket tak for hjælpen!
Avatar billede Kim Neesgaard Seniormester
24. marts 2006 - 12:50 #18
Men for også at få det til at virke på webserveren (hvor både databasebibliotek og app-bibliotek ligger flere niveauer nede), har jeg lavet en lille funktion, der skræller et niveau af Server.Mappath og lagt denne i en class:

    Public Shared Function OneLevelUp(ByVal Sti As String) As String

        'Der søges først efter '\' fra højre
        If InStrRev(Sti, "\") > 0 Then
            Return Mid(Sti, 1, InStrRev(Sti, "\"))
        Else
            'Der søges herefter for '/' fra højre, søgning efter \ fejlede
            If InStrRev(Sti, "/") > 0 Then
                Return Mid(Sti, 1, InStrRev(Sti, "/"))
            End If
        End If
        Return ""
    End Function

Min Dim bliver så:

Dim objConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DATA SOURCE=" & CL.ModSti.OneLevelUp(Server.MapPath("")) & ("DB\Database.mdb"))

og så virker det både lokalt og på webserveren.
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