INTERNET EXPLORER? Ti consiglio di navigare questo sito con Mozilla Firefox oppure con Google Chrome.

Gestire le inclusioni ed i parent-path su Windows Server 2003

Autore: Felice Bonfrate | Tell a Friend

eBook ASP base
Impara a creare siti dinamici con ASP e VBScript da zero!

Corso ASP
Impara a creare siti dinamici professionali con ASP!

E-Commerce con ASP
Impara a creare un sito di E-Commerce con carrello della spesa!

Molti Server stanno abbandonando Windows 2000 per installare il più performante Windows 2003. Il passaggio però non è indolore in quanto determinate applicazioni smettono di funzionare per problemi sugli #include e sui parent-path (Server.MapPath). Con l'avvento quindi di Windows 2003, come sistema operativo per la gestione dei server molti utenti si stanno trovando spaesati, poichè determinate applicazioni e script hanno smesso di funzionare a dovere.

Principali problemi sono imputabili agli #include ed ai Server.MapPath poichè le interazioni di essi tra file di cartelle diverse devono partire obbligatoriamente dalla root principale del sito.

Ecco il classico messaggio d'errore generato ad un cattivo percorso nel Server.MapPath:

Server.MapPath() error 'ASP 0175 : 80004005' 

Disallowed Path Characters 

default.asp, line XX 

The '..' characters are not allowed in the Path parameter for the MapPath method. 
Il problema in questione è determinato da questa porzione di codice
Server.MapPath("../../mdb-database/dati.mdb");
Praticamente ci sta dicendo che non gli piace il parent-path, rappresentato dai puntini messi prima dello slash (..) quindi basterà usare sempre il percorso assoluto partendo dalla root del nostro sito, così:
Server.MapPath("/mdb-database/dati.mdb")
Lo stesso inconveniente si verifica con gli #include:
<!-- #include file="../include/file.asp"-->
deve diventare:
<!-- #include file="/include/file.asp"-->
Spero di esservi stato di aiuto!

IN EVIDENZA
HOT LINKS