[asp/vbscript] aantal bestanden tellen in folder

Pagina: 1
Acties:
  • 138 views sinds 30-01-2008
  • Reageer

  • Batje4
  • Registratie: April 2000
  • Laatst online: 08-07 12:51
Onderstaand scriptje moet het aantal bestanden in de folder tellen. Dit als tellertje om per bestand de bestandsnaam in een database te kunnen stoppen. IIS loopt hier echter op vast.
Het enige wat ik kan bedenken is dat het met rechten te maken heeft, maar ik heb daar niets over kunnen vinden in de Programmer's Reference.

code:
1
2
3
4
  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder("d:\webroot\testing\images\Large\")
  Set objFiles = objFolder.Files
  response.write objFiles.count


Iemand een idee?

Het is vast wel mooi weer buiten.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Het debuggen van een asp-applicatie wordt door veel mensen als lastig ervaren, terwijl dit helemaal niet zo hoeft te zijn. Om een probleem op te lossen, is het van belang om er achter te komen wat er fout gaat. Om achter een fout te komen, hanteer ik altijd het volgende stappenplan:

1. Controleer op Norton Antivirus.
Zet Script Blocking uit; deze zorgt er voor dat een pagina's niet meer laden. Zie hiervoor ook dit Symantec artikel


2. Controleer of een simpele pagina het wel doet.
Een goed voorbeeld voor VBScript is:

ASP:
1
<% Response.Write "Hello world" %>

Als je dit niet op je scherm krijgt, dan heb je geen probleem met je code, maar zit er iets anders fout. Een mogelijke fout kan bijvoorbeeld de Script Blocking van Norton Antivirus zijn.

3. Zorg dat je de foutmelding ziet.
Standaard staat Internet Explorer zo ingesteld, dat je alleen 'vriendelijke foutmeldingen' ziet, dus zonder errors en code, terwijl je dit nu net wel wil zien. Je kan deze optie uitzetten door:

Tools > Internet Options > Advanced > Show Friendly http Errors uitvinken (staat onder het kopje 'browsing')

4. Comment eventuele "On Error Resume Next"
Dit statement zorgt er voor dat fouten genegeerd worden, terwijl je ze juist wel wilt zien. Plaats er daarom een single quote voor (zodat het als commentaar en niet als statement wordt gezien) of haal het tijdens het debuggen weg. Immers, de fouten moeten nu juist te voorschijn komen.

Normaal:
[/norml]
ASP:
1
Option Explicit Dim strQuery strQuery = "Select * FROM tabelnaam"

Debugmodus
ASP:
1
' Option Explicit Dim strQuery strQuery = "Select * FROM tabelnaam"

5. Zorg dat je de 'foute' variabele op het scherm krijgt
PHP kent error reporting, ASP.Net heeft het Tracing object; asp heeft niets van dit alles.

Wil je debuggen, dan zul je het op de handmatige wijze moeten doen door middel van Response.Write:

ASP:
1
Dim strSQL strSQL = "Er gaat iets fout in dit SQL statement" Response.Write strSQL ' Zet het statement op je scherm Response.End ' Eindig de uitvoering van je script.
[norml]
6. Tik de foutmelding, eventueel gedeelten daarvan, in op Google.
Je bent niet de eerste met de fout! Zorg er wel voor dat je de engelse foutmelding intikt. Google is een enorm snelle bron om oplossingen te vinden, met voorbeeldcode.

Krijg je geen foutmelding, controleer dan je code op oneindige loops.

[ Voor 11% gewijzigd door gorgi_19 op 01-07-2003 23:03 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Batje4
  • Registratie: April 2000
  • Laatst online: 08-07 12:51
a. er draaien meerdere sites op asp probleemloos op de server, dus asp werkt
b. ik zou graag een foutmelding willen krijgen, maar mijn browser geeft geen reactie
c. de server gaat moeilijk doen bij de volgende regel:
Set objFolder = objFSO.GetFolder("d:\webroot\testing\images\Large\")
(van onderuit iedere keer een regel uitzetten)

Het is vast wel mooi weer buiten.


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Waarschijnlijk heeft de useraccount die door ASP gebruikt wordt (IUSR_machinenaam dacht ik) geen rechten op die directory.

https://fgheysels.github.io/


  • Batje4
  • Registratie: April 2000
  • Laatst online: 08-07 12:51
Heej, die invalshoek had ik nog niet bekeken. Even nazoeken. Dank alvast!

Het is vast wel mooi weer buiten.


  • Batje4
  • Registratie: April 2000
  • Laatst online: 08-07 12:51
Heeft inmiddels volledige rechten, maar dat is het ook niet.

Het is vast wel mooi weer buiten.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Gebruik je ergens On Error Resume Next ?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

of heb je misschien niet genoeg rechten op FSO :?
Dat zit volgens mij in scrrun.dll. Als je daar rechtermuisklikt en ff kijkt welke rechten je hebt ingesteld...
Voor het goedzetten van de rechten moet je trouwens opletten dat het niet altijd IUSR is die als account ingesteld staat. Bij IIS manager kun je zien in "directory security --> authentication" of er anonymous wordt gesurft of dat er misschien windows authentication wordt gebruikt.
Verder; staat er misschien een error in je event log nadat het script blijft hangen? (en staat on error resume next aan idd?)

kaart != map && bottel != fles
Wacht op antwoord


  • Batje4
  • Registratie: April 2000
  • Laatst online: 08-07 12:51
Er is geen On Error Resume Next, het gaat puur om de regels in de topicstarter.

Na lang wachten krijg ik overigens de melding: server too busy. En dat blijft dan ook zo (nu al enkele uren). ook na een restart van IIS en een nieuwe browser blijft hij deze melding geven (403:9 van MS).

Show friendly errors stat uitgevinkt.

Er wordt anonymous gesurfd op basis van IUSR_servernaam.

Het is vast wel mooi weer buiten.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Batje4 schreef op 04 July 2003 @ 15:11:
Er is geen On Error Resume Next, het gaat puur om de regels in de topicstarter.
Al flikker je On Error Resume Next bovenaan je script, 1000'en regels van deze regel vandaan, dan kan nog deze enkele regel er voor zorgen dat de boel vast loopt.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Batje4
  • Registratie: April 2000
  • Laatst online: 08-07 12:51
OK. Maar de pagina bestaat uitsluitend uit het stukje van de topicstart. Er is niets anders (behalve de standaard html en bodytags). Tussen de normale <% en > tags natuurlijk.

scrrun.dll: IUSR_servernaam heeft daar nu volledige rechten op.

[ Voor 34% gewijzigd door Batje4 op 04-07-2003 16:10 ]

Het is vast wel mooi weer buiten.


  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

en als je dit nu om schrijft naar een vbscript:

code:
1
2
3
4
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder("d:\webroot\testing\images\Large\")
  Set objFiles = objFolder.Files
  wscript.echo objFiles.count


(en opslaan als .vbs)

Dan kun je iig uitsluiten dat het aan IIS, ASP of de internetuseraccount ligt ;)

kaart != map && bottel != fles
Wacht op antwoord


  • Batje4
  • Registratie: April 2000
  • Laatst online: 08-07 12:51
Nope, werkt ook niet. Norton is het ook niet. Morgen IIS eens opnieuw installeren, en kijken of daar iets mis mee is. Slapens!

Het is vast wel mooi weer buiten.


  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

wacht daar nou ff mee; als dit vbsje het niet doet heb je zojuist aangetoond dat het NIET in IIS zit. Het lijkt me dat het in scrrun.dll, of de vbscriptengine zit. Dat klinkt wel heel erg als een scriptblocking feature...

Ik zou iig niet IIS herinstallen, download dan liever een nieuwe Vbscript engine bij MS...

kaart != map && bottel != fles
Wacht op antwoord


  • Batje4
  • Registratie: April 2000
  • Laatst online: 08-07 12:51
Done, en probleem opgelost:
- Norton opnieuw geinstalleerd (en scripting op allowed gezet): geen resultaat
- IIS opnieuw geinstalleerd: verdomd: het werkt :?

Hartelijk dank voor het meedenken, maar dit is er een in de categorie: onnavolgbaar.

Het is vast wel mooi weer buiten.


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Volgens heeft heeft het toch aan je virusscanner gelegen.

  • Batje4
  • Registratie: April 2000
  • Laatst online: 08-07 12:51
Dat zou zomaar kunnen.

Het is vast wel mooi weer buiten.

Pagina: 1