ASPcenter.net

2 marzo 2010

Gestire le #include ed i parent-path su Win 2003

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.

Nessun commento »

Non c'è ancora nessun commento.

RSS feed dei commenti a questo articolo. TrackBack URL

Lascia un commento

ASPcenter.net è il blog italiano su ASP, ASP.Net, VB.Net, C# e Visual Studio - Funziona con WordPress