28. september 2003 - 21:43Der er
39 kommentarer og 1 løsning
fso.OpenTextFile, læs fra fil
hey folkens. Jeg bruger WinXP Pro og IIS til at teste mine asp scripts.. nu har jeg brug for at læse noget tekst fra en fil.. jeg har
fundet noget kode der bliver brugt på adskellige websites hvor man kan lære asp.. så det skulle gerne funke..
her er koden (filen hedder "read.asp"): -- <% Dim fso, f, filespec Set fso = CreateObject("Scripting.FileSystemObject") filespec = Server.Mappath("userpass.asp") Set f = fso.OpenTextFile(filespec,1)
' Læs linie for linie indtil slutningen af filen Do While not f.AtEndOfStream Response.write f.ReadLine & "<br>" Loop
f.Close %> --
filen indeholder noget tekst (filen hedder "userpass.asp"): -- <% 'brugernavn1=password1 'brugernavn2=password2 %> Fis af makker :) --
ved at kommentere hel scriptet, og derefter fjerne en enkel kommentar ad gangen, har jeg fundet ud at problemet ligger i
denne linie:
Set f = fso.OpenTextFile(filespec,1)
jeg vil tro at det er "fso.OpenTextFile" delen af linien..
efter at have prøvet at køre siden et par gange får jeg denne besked: HTTP 403.9 - Access Forbidden: Too many users are connected
og så kan jeg ikke få adgang min sider på localhost/et-eller-andet
normalt betyder det at jeg åbner en forbindelse, og lader være med at lukke den igen... men der står jo f.Close..
jeg har prøvet at indsætte response.write "time: " & time efter Set f = fso.OpenTextFile(filespec,1), men det bliver ikke udført.
det blev sq længere end nogen af mine dansk stile :).. oh well, any ideas?
<% Dim fso, f, filespec Set fso = CreateObject("Scripting.FileSystemObject") filespec = Server.Mappath("userpass.asp") response.write "filespec: " & filespec 'Set f = fso.OpenTextFile(filespec,1)
' Læs linie for linie indtil slutningen af filen 'Do While not f.AtEndOfStream ' Response.write f.ReadLine & "<br>" 'Loop ' 'f.Close set fso = nothing set filespec = nothing %>
jeg kan ikke køre scripten igen forløbigt.. den siger 403.9 Too Many Users.. jeg tror jeg bliver nød til at genstarte computeren.. burde den ikke komme med en fejlmelding hvis den ikke kan finde filen?
userpass.asp er filen med username/password read.asp er filen der indeholder koden til at læse fra userpass.asp ("...filespec = ..." ligger i read.asp)
jeg har prøvet med userpass.txt i stedet userpass.asp.. giver samme resultat.. den kan åbenbart ikke åbne tekst filer til læsning (heller ikke til skrivning) med .OpenTextFile
har du prøvet at køre eksempel hos dig? hvis ja, virkede det?
her er en demo: http://frip.dk/thesurfer/e/q/407070/ den viser om FileSystemObject er understøttet.. den prøver på at skrive til en fil, og derefter prøver den på at slette filen..
da frip.dk har begrænset FSO, vil det mislykkes (man får at vide at det ikke virker), og resten af dokumentet bliver udført..
jeg prøvede dette script på min computer, og det virkede ikke.. den loader bare og laver ingenting.
Hej igen Undskyld jeg først svarer nu. Det her virker hos mig. Det var rettigheder til mappen hvor du forsøger at oprette din fil der ikke var iorden.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1254"> <TITLE>Detecting System Components</TITLE> <style type="text/css"> body, table, td { font-family: tahoma; font-size: 12px } </style> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000" TOPMARGIN="0" LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">
<br> <% On Error Resume Next 'hvis du udkommenterer den her kan du se fejlen OutHTML = ""
path = Server.MapPath("./fil/testfile.txt") 'samme nivea i fil mappe
Set FSO = CreateObject("Scripting.FileSystemObject") Set act = FSO.CreateTextFile(path, True) act.WriteLine("TestLine") act.Close Set act = Nothing If Err = 0 Then OutHTML = OutHTML & "<BR>Creating of files supported..." & vbcrlf Else OutHTML = OutHTML & "<BR>Creating of files <B>not</B> supported..." & vbcrlf End If fso.DeleteFile(path) If Err = 0 Then OutHTML = OutHTML & "<BR>Deleting and Modifying of files supported..." & vbcrlf Else OutHTML = OutHTML & "<BR>Deleting and Modifying of files <B>not</B> supported..." & vbcrlf End If Set FSO = Nothing If Err > 0 then Response.Write "<B>Scripting.FileSystemObject not full supported.</B>" & vbcrlf Else Response.Write "Detected: <B><FONT COLOR=""#009900"">Scripting.FileSystemObject</FONT></B><BR><BR>" & vbcrlf End if Err.Clear Response.Write OutHTML
Åbn mappen C:\Inetpub\wwwroot højreklik på din mappe med databasen - Vælg egenskaber - Klik på fanen sikkerhed - giv her IUSR skriverettigheder.
Åbn denne computer - Klik på menupunktet Funktioner - Mappeindstillinger - Klik på fanen Vis - Fjern flueben i "Brug Enkel Fildelign" så har du adgang til den før omtalte fane der hedder sikkerhed.
min struktur er: \inetpub\wwwroot\sites\readfile alle mine sites ligger, i deres respektive mapper, i mappen "sites" mappen
jeg bruger winxp pro med FAT32 (ikke NTFS).. mon det kan ha' noget med det at gøre?
når jeg højreklikker på en eller anden mappe (f.eks. sites og/eller readfile) og vælger properties, kan jeg vælge mellem "Sharing" og "Web Sharing".
Under "Sharing" står der "You can share this folder with other users on your network.." og så er der en "Permissions" knap hvor jeg kan tilføje "MachineName\IUSR_MachineName" med permissions "Full Control, Change, Read".. I listen er der allerede "Everyone" med permissons "Full Control, Change, Read" sat til "Allow"..
Under "Web Sharing" står der "Internet Information Services" og jeg kan vælge "Share this folder", hvorefter den spørg om et alias til mappen.. her er "Read" valgt i "Access Permissions", og "Scripts" i "Application Permissions".. jeg har prøvet at vælge "Write" i "Access perms..", med samme resultat..
jeg har prøvet at share både sites og readfile mappen, og begge mapper hver for sig..
Jeg tror jeg vil prøve at restore en backup af IIS konfigurationen som jeg lavede da jeg installerede IIS.. jeg har nemlig før kommet til at disable en eller anden service, så jeg kunne ikke få localhost til at virke.. men her kan jeg godt få sites, der ikke bruger FSO, til at virke..
hvis det ikke virker, vil jeg prøve at afinstallere og geninstallere IIS..
Åbn denne computer - Klik på menupunktet Funktioner - Mappeindstillinger - Klik på fanen Vis - Fjern flueben i "Brug Enkel Fildelign" så har du adgang til den før omtalte fane der hedder sikkerhed.
Når du har gjort det, får du fanebladet sikkerhed/security. Derefter kan du give rettigheder som beskrevet ovenfor.
det har jeg udført.. ellers kan du ikke gøre det her:
Under "Sharing" står der "You can share this folder with other users on your network.." og så er der en "Permissions" knap hvor jeg kan tilføje "MachineName\IUSR_MachineName" med permissions "Full Control, Change, Read".. I listen er der allerede "Everyone" med permissons "Full Control, Change, Read" sat til "Allow"..
nej nej. Jeg ved godt der er permissions under sharing. Glem sharing og glem permissions. Du skal trylle et security faneblad frem. Du skal have 4 faneblade bagefter, nemlig general, sharing, SECURITY og customize. Det er DEN security der er interessant.
Hej I to! Jeg sad med et lignende problem (WinXP Pro NTFS) og kunne heller ikke få adgang til at åbne en fil vha OpenTextFile. Inspireret af jeres konversation satte jeg flueben i begge boxe i "Egenskaber for wwwroot" under fanebladet "Deling"; den sidste tillader netværksbrugere at ændre mine filer. Men om det så er rigtigt og fornuftigt og sikkert osv. - det har jeg ingen anelse om, men det virker ;-)
Takker for infoen :) Har lige prøvet det, men det virker ikke hos mig.. måske er det fordi jeg har XP PRO med FAT32 i stedet for NTFS..
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.