Avatar billede dehaas Nybegynder
21. august 2006 - 14:28 Der er 28 kommentarer og
1 løsning

Server.MapPath fra Klasse

Hej, jeg sidder og roder med min egenklasse.

Jeg har brug for at gemme en fil på serveren derfra, men jeg har ikke tilgang til Server.MapPath. Hvordan gør jeg?
Avatar billede dr_chaos Nybegynder
21. august 2006 - 14:33 #1
httpcontext.current.server.mappath eller cirka deromkring.
Avatar billede dr_chaos Nybegynder
21. august 2006 - 14:34 #2
HttpContext.Current.Server.MapPath bruger jeg selv og using system.web;
Avatar billede dehaas Nybegynder
21. august 2006 - 16:26 #3
Hmm jeg får denne fejl:

Object reference not set to an instance of an object.

På denne linje:

        Dim Writer As New System.IO.StreamWriter(HttpContext.Current.Server.MapPath("~/" + FileName).ToString())

Filename = "abekat.aspx"
Avatar billede dr_chaos Nybegynder
21. august 2006 - 20:20 #4
prøv lige at udskrive

HttpContext.Current.Server.MapPath("/" + FileName).ToString()
Avatar billede dehaas Nybegynder
21. august 2006 - 20:44 #5
får samme fejl

Dim Test as String = HttpContext.Current.Server.MapPath("/" + FileName).ToString()
Return Test
Avatar billede dr_chaos Nybegynder
21. august 2006 - 20:47 #6
system.web


Dim Test as String = system.web.HttpContext.Current.Server.MapPath("/" + FileName).ToString()
Avatar billede dehaas Nybegynder
21. august 2006 - 21:40 #7
samme fejl igen
Avatar billede dr_chaos Nybegynder
22. august 2006 - 08:08 #8
prøv med


Dim Test as String = system.web.HttpContext.Current.Server.MapPath("/")
Avatar billede dehaas Nybegynder
22. august 2006 - 19:25 #9
Har prøvet at skrive:

HttpContext.Current.Request.PhysicalApplicationPath()

istedet, men jeg får pigen samme fejl.
Avatar billede dehaas Nybegynder
22. august 2006 - 21:48 #10
Jeg har nu prøvet at lave det samme i en anden klasse. Der virker det fint. Men jeg har brug fro det netop her, måske er det måden jeg bruger den på der er noget galt med.

Jar har en Punlic Function, som kalder en Private Function. Denne PrivateFunction kalder så en Private Sub. Det er her jeg bruger koden.
Avatar billede dehaas Nybegynder
22. august 2006 - 22:13 #11
Nu har jeg prøvet at lave en public function der returnerer :

System.Web.HttpContext.Current.Server.MapPath("~/wikwak3.aspx").ToString()

Denne kan jeg kalde uden problemer fra en aspx side. Men hvis jeg kalder den fra min Private Sub får jeg fejlen igen.
Avatar billede dr_chaos Nybegynder
23. august 2006 - 06:02 #12
pr'v lige med :
system.web.HttpContext.Current.Server.MapPath("/")
Avatar billede dehaas Nybegynder
23. august 2006 - 09:48 #13
Beklageligvis samme fejl igen :(
Avatar billede dr_chaos Nybegynder
23. august 2006 - 10:15 #14
ligger din vb fil i appcode på webstedet ?
Avatar billede dr_chaos Nybegynder
23. august 2006 - 10:16 #15
og er den en del af hele projektet.
Avatar billede dehaas Nybegynder
23. august 2006 - 10:21 #16
Ja, den ligger i App_Code folderen. Hvad mener du med en del af projektet?
Avatar billede dr_chaos Nybegynder
25. august 2006 - 09:04 #17
Det var bare om den var en del af det overordnet webprojekt ?
Avatar billede dehaas Nybegynder
25. august 2006 - 09:39 #18
Oh, jamen det er det.

Det er vigtigt jeg får det til at virke :S.

Kan det have noget at gøre med den bruger den i en sub?
Avatar billede dr_chaos Nybegynder
25. august 2006 - 10:19 #19
Ligger det i samme namespace ?
Avatar billede altschuler Nybegynder
25. august 2006 - 10:35 #20
Der ser sådan ud (skitse over klasse)

Public Class PageBuilder

Public Function Test
' Kalder _Test
End function

Private Function _Test
' Kalser SavePage()
End function

Private Sub SavePage()
' Det er her koden bruges, og dermed her fejlen kommer.
End Sub
Avatar billede altschuler Nybegynder
25. august 2006 - 10:35 #21
End Class
Avatar billede dehaas Nybegynder
25. august 2006 - 10:37 #22
Woops, så glemte min ven at logge ud. Beklager, det skal ikke ske igen. altschuler's kommentare kommer fra mig.
Avatar billede dr_chaos Nybegynder
26. august 2006 - 08:54 #23
hmm jeg fatter slet ikke hvorfor det ikke virker hos dig.
Jeg har intet problem med at gøre det.

Kan du kalde functionen Test fra dine aspx sider ?
Avatar billede dehaas Nybegynder
26. august 2006 - 10:45 #24
Ja, det kan jeg godt.

Jeg tror problemet er at jeg brugden den internt i klassen. Altså Test-funtionen returnerer ikke noget der har noget med filen at gøre. Det er bare menningen at klassen automatisk skal gemme en fil.
Avatar billede dr_chaos Nybegynder
26. august 2006 - 11:16 #25
hvis jeg må komme med et foreslag.
Så synes jeg at du skal sende Server.mappath med som en string til din klasse.
Altså når klassen kaldes sender du den nødvendige server.mappath med.
Avatar billede dehaas Nybegynder
26. august 2006 - 12:00 #26
jo, det kan jeg jo blive nødt til. Tænkte bare det andet ville være smart.

Mange tak for din hjælp, smid et svar.
Avatar billede dr_chaos Nybegynder
26. august 2006 - 12:41 #27
svar :)
Det burde også kunne lade sig gøre.
Jeg gør det.
Men det kan godt være at metoden skal kaldes fra en aspx side før tingene er tilgængelige.
Avatar billede dehaas Nybegynder
26. august 2006 - 15:18 #28
Ja, det tror jeg du har ret i. Hvis jeg kalder den fra en aspx side virker det nemlig også fint. Mange tak for hjælpen.
Avatar billede dr_chaos Nybegynder
26. august 2006 - 15:27 #29
tak :)
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