33 messaggi dal 29 settembre 2010
Ciao a tutti,
ho il seguente problema:
devo caricare un'applicazione su un servizio di hosting che richiede la seguente stringa di connessione per i file access:
ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("Database\TestDB.mdb")

Ora però nel mio codice solitamente faccio riferimento ad una connection string nel web.config in modo che quando passo dall'ambiente di sviluppo a quello di produzione devo solo cambiare il web.config

A quanto pare però non posso mettere Server.Mappath nel web.config quindi come posso fare?

Potrebbe essere un'idea creare una stringa in un global.asax???
Così quando passo dall'ambiente di sviluppo a quello di produzione cambio web.config e global.asax ma almeno non devo cambiare il percorso del file access in tutti i posti del code behind in cui mi collego.

Spero di non essere stato troppo contorto nella spiegazione :-)

Ringrazio anticipatamente chi mi vorrà rispondere
209 messaggi dal 09 ottobre 2006
Ciao Renga,
forse non ho capito bene la domanda, ma non riesco a capire l'uso di "Server.MapPath".

In un sito dove utilizzo access come db ho questo nel web.config:

<add name="MiaConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\dbAccess.mdb" providerName="System.Data.OleDb"/>


ovviamente il db è nella cartella App_Data
33 messaggi dal 29 settembre 2010
Ciao Satego,
queste sono le istruzioni che il mio provider fornisce per la connessione ad un db access

"Doka only provides DSN-less connection to the Access databases, because they are much faster and there is no possible names conflict.
Most of the problems are in choosing right connection string. Here is an example of tested connection string to MS Access database:

We suppose that your database resides in ?Database? subfolder and it name is ?TestDB.mdb?.
You?ll have to use Server.MapPath(?Database\TestDB.mdb?) in order to get physical location of database.
So connection string would be:

"PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("Database\TestDB.mdb")

And the way to utilize it:

ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("Database\TestDB.mdb")
Set DbConnection = Server.CreateObject("ADODB.Connection")
DbConnection.Open ConnectionString
"



Però proverò anche con la stringa di connessione che mi hai suggerito tu per scrupolo...
|DataDirectory| è un alias per la dir App_Data, ma serve sempre e comunque il path completo (c:\...), che solo Server.MapPath può dare.
Inviato dall'app per Windows 8

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
33 messaggi dal 29 settembre 2010
Capito,
quindi come potrei fare?

Io pensavo di dichiarare una stringa nel file global asax ed richiamarla poi nel codice ogni volta che mi devo collegare all'access.

In questo modo tolgo il percorso che ora è hard coded nel mio ambiente di sviluppo e metto un riferimento alla stringa.

Di conseguenza poi mi tengo un file global asa per l'ambiente di sviluppo ed uno per la produzione...

E' fattibile? e se si è stilisticamente corretto?

Grazie ragazzi
33 messaggi dal 29 settembre 2010
Ho risolto in quanto ho notato che il provider volendo mi forniva anche il percorso fisico completo in cui risiede la mia applicazione. Quindi ho messo quello nel web.config

In ogni caso mi interesserebbe capire come si crea un oggetto (ad esempio una stringa) nel global asa per poi utilizzarla in tutta la applicazione

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.