Gestire db access residenti su computer client e non su server

venerdì 14 gennaio 2011 - 12.39
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  Windows 7  |  Visual Studio 2005  |  Access (.mdb)  |  Internet explorer 8.0  |  Firefox

13600210 Profilo | Newbie

Buongiorno a tutti.
Inserisco nuovamente questo thread al quale mi è stato cortesemente risposto, ma per me, non in maniera soddisfacente.
Il primo inserimento è datato 24 dic 2010 e probabilmente passato inosservato ai più, dato il periodo vacanziero.
Dunque, espongo il problema :

Ho necessità in asp.net di gestire singoli db access residenti sui client di chi si connette da un'applicazione con logica comune a tutti gli utenti.
Per connettermi uso la seguente sequenza :

Dim IP
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IP = "" Then
IP = Request.ServerVariables("REMOTE_ADDR")
End If
indirizzo.Text = IP
Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & indirizzo.Text & "/App_data/ccc.mdb")
Dim cmdmdb, cmdmdb1 As New OleDbCommand
conn.Open()

In locale mi restituisce un errore di percorso :
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\127.0.0.1\App_data\ccc.mdb" non è un percorso valido. Assicurarsi che il nome del percorso sia corretto e di essere collegati al server in cui si trova il file.

On line invece
[OleDbException (0x80004005): 'c:\windows\system32\inetsrv\79.36.74.83\App_data\ccc.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.]

Quindi come faccio ad inserire l'indirizzo IP del client su cui risiede il db nella stringa di connessione, tenendo presente il fatto che il data base da gestire si trova nella cartella App_data sotto root del cliente?

Mi è stato risposto che si possono gestire solo db residenti su server. Se è così vorrei conoscerne il motivo.
Saluti.

alx_81 Profilo | Guru

>Buongiorno a tutti.
ciao

>Inserisco nuovamente questo thread al quale mi è stato cortesemente
>risposto, ma per me, non in maniera soddisfacente.
>Il primo inserimento è datato 24 dic 2010 e probabilmente passato
>inosservato ai più, dato il periodo vacanziero.
in che stanza? Non lo trovo.. passa un link se vuoi che andiamo a vederlo ancora..

>Ho necessità in asp.net di gestire singoli db access residenti
>sui client di chi si connette da un'applicazione con logica comune a tutti gli utenti.

>In locale mi restituisce un errore di percorso :
>C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\127.0.0.1\App_data\ccc.mdb"
>non è un percorso valido. Assicurarsi che il nome del percorso
>sia corretto e di essere collegati al server in cui si trova il file.

>On line invece
>[OleDbException (0x80004005): 'c:\windows\system32\inetsrv\79.36.74.83\App_data\ccc.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 è normale, app_data è sul web server, non sui client. Non puoi fare in modo che un sito web, che è su di un server, possa interagire con i database distribuiti sul client.

>Quindi come faccio ad inserire l'indirizzo IP del client su cui
>risiede il db nella stringa di connessione, tenendo presente
>il fatto che il data base da gestire si trova nella cartella
>App_data sotto root del cliente?
Non trovo sia l'approccio corretto. Quindi passiamo alle domande:
1) perchè devi distribuire i database sul client?
2) non puoi fare tutto su di un db centralizzato in cui i dati sono filtrati per utente che accede?
3) se proprio hai la necessità di distribuire, credo che il sito web non sia la soluzione corretta. Meglio fare un client, che con sè, porta il suo db proprietario. Quel client lo fai scaricare da internet..


--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

13600210 Profilo | Newbie

Grazie per la risposta, non posto il link precedente in quanto mi sta bene questa risposta, il vecchio thread lo chiuderò, quindi passo alle precisazioni.
E' ovvio che ho creato una directory App_data sotto root, il nome potrebbe anche essere differente, non è quello il problema.
Il database da gestire è proprietario ed unico di ogni singolo utente, che può perciò farne libero uso in locale.
La logica di gestione è invece comune a tutti.
L'eventuali modifiche alla logica sono subito disponibili senza doverle redistribuire.
La domanda è : perchè se gli chiedo l'indirizzo IP del client e lo visualizzo in una label me lo restituisce in maniera corretta, mentre nella stringa di connessione ci aggiunge
'c:\windows\system32\inetsrv\.....'
Capisco che il server è costretto a ricevere la richiesta dal client, ricollegarsi al cliente per aprire la connessione, ricevere conferma dell'apertura sempre dal client ecc. ecc.
Quali potrebbero essere i motivi che impediscono questo riprtuto scambio server client ?
Saluti. Savino Campana

alx_81 Profilo | Guru

>La domanda è : perchè se gli chiedo l'indirizzo IP del client
>e lo visualizzo in una label me lo restituisce in maniera corretta,
>mentre nella stringa di connessione ci aggiunge
> 'c:\windows\system32\inetsrv\.....'
perchè quello è il percorso di default del web server..
non puoi creare un percorso dedicato e puntare sempre a quello?

>Capisco che il server è costretto a ricevere la richiesta dal
>client, ricollegarsi al cliente per aprire la connessione, ricevere
>conferma dell'apertura sempre dal client ecc. ecc.
>Quali potrebbero essere i motivi che impediscono questo riprtuto
>scambio server client ?
Scusami, non ti seguo.. Dal mio punto di vista, stai abusando di quello che è un web site, in cui su server hai le risorse e su client navighi.. solo questo. Se vuoi fare un'applicazione dedicata al cliente, ti consiglio di pensare ad un wpf, una winapp, che porta con l'installazione anche il suo database. Con clickonce poi è semplice tenere allineate le versioni dovute ai rilasci.


--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5