Ciao,
sto cercando di fare in modo che il progetto che ho creato funzioni a prescindere dal sito o cartella in cui si trova.
Per questioni di comodita' ho la cartella che contiene il progetto nel disco D del mio pc.
Quando provo l'applicazione sul browser, quindi sul server virtuale (localhost), la stringa di connessione (a prescindere da come la scrivo) punta al disco C anche se questa lettera non e' presente nel percorso.
Ecco alcune prove fatte in questi giorni.
in Web.Config:
<add key="AccessConn" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=~/App_Data/DBUsers.mdb;"/>
Tentativo1 Nel file aspx cerco di sostituire la tilde con il path della pagina con il codice seguente
Dim Connessione As New OleDbConnection(Replace(System.Configuration.ConfigurationManager.AppSettings("AccessConn"), "~", Request.ApplicationPath.ToString()))
Ottengo la seguente eccezione:
System.Data.OleDb.OleDbException (0x80004005): "C:\webproject\App_Data\DBUsers.mdb" non e' un percorso valido. Assicurarsi che il nome del percorso sia corretto e di essere collegati al server in cui si trova il file.
Tentativo 2 nel file aspx:
Dim Connessione As New OleDbConnection(System.Configuration.ConfigurationManager.AppSettings("AccessConn"))
Eccezione:
System.Data.OleDb.OleDbException (0x80004005): "C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\~\App_Data\DBUsers.mdb" non e' un percorso valido. Assicurarsi che il nome del percorso sia corretto e di essere collegati al server in cui si trova il file.
Tentativo 3 nella pagina aspx
Dim Stringadiconnessione As String
Stringadiconnessione = Replace(System.Configuration.ConfigurationManager.AppSettings("AccessConn"), "~", Request.ApplicationPath.ToString())
Response.Write(System.Configuration.ConfigurationManager.AppSettings("AccessConn").ToString)
Restituisce
/webproject
Response.Write(Stringadiconnessione)
Restituisce
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=/webproject/App_Data/DBUsers.mdb;
Quindi, in teoria, e' tutto giusto ma ottengo comunque un'eccezione:
System.Data.OleDb.OleDbException (0x80004005): "C:\webproject\App_Data\DBUsers.mdb" non e' un percorso valido. Assicurarsi che il nome del percorso sia corretto e di essere collegati al server in cui si trova il file.
Come mai pesca sempre e comunque "C"?
Caricando tutto su un server reale e non su localhost (anche se in realta' si tratta del serve dell'azienda per cui lavoro, quindi sempre una cartella, infatti, usando il percorso assoluto devo fare riferimento al disco "E")
Come posso fare ad impostare un percorso relativo che posso usare in fase di progettazione (il mio disco "D") e poi caricare sul serve dell'azienda (il disco "E") e far sì che funzioni?
Grazie per l'aiuto