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.