• User

    Problema importazione sito web

    Salve a tutti, avrei bisogno di un aiuto per un progetto di un sito web che devo modificare.
    In visual studio la compilazione va a buon fine e mi apre il browser con il sito. Purtroppo però quando cerco di effettuare il login (il sito ha un'area di amministrazione a cui si accede con user e password) ricevo questo errore:

    InvalidOperationException
    Impossibile mappare il percorso....

    La riga che genera l'errore è di questo tipo:

    Dim percorsoFile As String = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSetting("...") & "/...../....xml")

    Il file xml ovviamente c'è sul disco ma, evidentemente, non riesce a risolvere correttamente il percorso. Sono nuovo di asp.net e visual studio...

    Qualcuno può darmi qualche dritta su come risolvere questo tipo di problema?

    Scaricare tutti i file da FTP del sito web per poi aprirlo su visual studio mi ha dato questo problema...


  • Moderatore

    Ciao SAKO, **Server.MapPath **ricostruisce il percorso fisico a partire da un percorso relativo o virtuale.
    Ammettendo che il file xml si trovi nel percorso Root/App_Data/ puoi specificare il percorso virtuale in questo modo: ~/App_Data/file.xml.
    Oppure quello relativo potrebbe essere, se l'istruzione si trova in una pagina della sotto-cartella Root/Folder/SubFolder/, ../../App_Data/file.xml.

    Controlla quindi qual'è il percorso che costruisci ad esempio in questo modo:

    
    Dim path As String = ConfigurationManager.AppSetting("...") & "/...../....[xml](http://www.giorgiotave.it/wikigt/os/XML)"
    
    

    Metti un BreackPoint, avanza con F10 e controlla il contenuto di path​.


  • User

    Grazie per la risposta. Ecco cosa penso di aver scoperto:
    La riga di codice completa è questa

    Dim percorsoFile As String = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSetting("xml_dati_path") & "/credenziali/logIn.xml")
    
    

    Ho fatto come mia hai suggerito, quindi

    Dim path As String = ConfigurationManager.AppSetting("xml_dati_path")
    

    e dalla finestra di debug vedo che path a valore nothing....

    Se scrivo la stringa completa

    Dim path As String = ConfigurationManager.AppSetting("xml_dati_path") & "/credenziali/logIn.xml")
    

    path prende il valore /credenziali/logIn.xml

    Ho provato anche ad aggiungere

    Debug.Write(xml_dati_path)
    

    ma ricevo un errore in compilazione...dice che xml_dati_path non è dichiarato/ non è accessibile a causa del livello di protezione.


  • Moderatore

    xml_dati_path è un parametro applicativo creato da chi ha realizzato il sito in prima istanza.

    Scaricando il sito da FTP dovresti aver recuperato anche il file web.config, che è a tutti gli effetti un file xml, in questo file ci deve essere una sezione (nodo) AppSetting.
    Se non ci fosse devi crearlo dentro il nodo Configuration.

    Qui dovrebbe trovarsi il parametro di cui sopra, se non c'è devi aggiungerlo con il valore che va a completare il path "/credenziali/logIn.xml"

    Più o meno così:

       
    <appSettings>
       <add key="xml_dati_path" value="~/App_Data"/>
    </appSettings>
    
    
    

  • User

    Ti ringrazio veramente tanto! Ho seguito le tue indicazioni e adesso funziona come dovrebbe! web.config era nella cartella del sito, poi ho aggiunto tutto a mano. Chi ha fatto il sito ha dovuto dichiarare il parametro anche lui come mi hai indicato te, in quel file? Non capisco perché non era dichiarata...mi ero messo a cercare dove potesse essere definita quella variabile ma non l'ho trovata da nessuna parte....

    Ciao e grazie ancora!


  • Moderatore

    Figurati
    Buon lavoro