Molti Web 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"-->
A cura di Felice Bonfrate.
