Problemi con la connesione sul server con mdb

mercoledì 03 dicembre 2003 - 11.38

lupotana Profilo | Junior Member

Salve a tutti,
il mio problema è che non riesco a specificare la root del server per la connectionstring al database in questo caso Access.

La mia connectionstring è nel file web.config, ve la scrivo :
add key=CNSTRING value=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[MapPath]\mdb-database\TSM.mdb;Persist Security Info=False /

Ho provato a mettere il tag [MapPath], (ho cercato sul web), ma nons embra funzionare visto che il server su cui c'è il mio applicativo (aruba.it) mi da un bell'errore del tipo:

Server Error in '/' Application.
--------------------------------------------------------------------------------

'c:\windows\system32\inetsrv\[MapPath]\mdb-database\TSM.mdb' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

Questo mi fa capire che il tag [MapPAth] non serve a granchè visto che mi parte comunque da c:\windows\....

Voi cosa mi consigliate?

Ciao..

Brainkiller Profilo | Guru

Ciao Lupo,
non è un tag da mettere ma un'istruzioen vera e propria che è Server.MapPath() che ti restituisce il path/percorso fisico alla cartella del tuo sito.
Solitamente su una macchina windows standard se tu richiami Server.MapPath("/") lui ti restituisce c:\inetpub\wwwroot
Allo stesso modo quando tu componi la tua stringa di connessione concantenala con i valori proveniente da MapPath a cui poi aggiungi il nome del file .mdb.

Per capire, magari assegna ad una label il valore di Server.MapPath("/") così capisci.
ciao

david

lupotana Profilo | Junior Member

Grazie, ma non è la soluzione che volevo.

Preferivo fare riferimento direttamente nel web.config all'indirizzo remoto e server.MapPath non funziona nel web.config.

Hai soluzioni alternative?

Grazie mille comunque...

Brainkiller Profilo | Guru

Ciao,
hai ragione avevo tralasciato un pezzo.
Allora secondo me potresti fare così, crearti vari keys nel web.config e poi via codice ricostruirti la stringa di connessione usando anche Server.Mappath. Esempio nel web.config metti ste chiavi:

<add key="Part1" value="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="/>
<add key="Part2" value="\db\tuodb.mdb" />

che poi recuperi da codice con l'istruzione: Configuration.ConfigurationSettings["Part1"]

Oppure creare un valore con la Session dentro il global.asax quando comincia una nuova sessione, in modo che sia disponibile da ogni pagina, però personalmente preferireri la prima soluzione.
ciao

david


lupotana Profilo | Junior Member

Eh già.. la soluzione era più facile del previsto.

Grazie mille...

A buon rendere..

Ciao...

lobax Profilo | Junior Member

ciao, Hai scritto
---
... usando anche Server.Mappath. Esempio nel web.config metti ste chiavi:

<add key="Part1" value="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="/>
<add key="Part2" value="\db\tuodb.mdb" />

che poi recuperi da codice con l'istruzione: Configuration.ConfigurationSettings["Part1"]
---
Ho anchio questo problema ma non ho capito come fai a ricostruire la stringa con mappath se "part2" resta sempre con il percorso C\ ?

mi di lumi per piacere?
grazie
lobax

lobax Profilo | Junior Member

ok ok scusa era una stron.. mi ero fissato sulla barra rovesciata.
grazie ciao

lobax Profilo | Junior Member

però dice che la connessione non è inizializzata come avete conbinato?
grz lob
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5