Microsoft OLE DB Provider for ODBC Drivers error '80004005' - come lo ...

mercoledì 03 settembre 2008 - 17.31

rankx Profilo | Newbie

Ciao a tutti.
Io programmo solo in ASP, e poco perchè non faccio il programmatore di professione. Mi è venuta l'idea di creare più siti che puntano tutti allo stesso DB access. I miei siti sono tutti su Aruba. La stringa di connessione che uso è un file di inclusione, nella fattispecie tourserv.asp che contiene questo codice,
<%
' FileName="Connection_odbc_conn_dsn.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
Dim MM_tourserv_STRING
MM_tourserv_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ= D:\Web\b2bpromotionit\mdb-database\tourserv.mdb "
%>
che funziona se il db è sulla stesso dominio.

Ho creato un altro dominio sullo stesso localhost di IIS ed ho usato la stessa stringa di connessione per prendere i dati dal DB presente sul primo dominio. Questo per avere più siti, con grafiche diverse, che si aggiornano immettendo i dati nello stesso DB access residente sul primo dominio della serie. Ed in locale mi funziona. Io ho XP Professional.

Se però trasferisco on line tutti e due i domini, inserendo nel codice di connessione del secondo sito la path completa della cartella del primo sito, quello da cui devono essere estratti i dati, ossia
<%
' FileName="Connection_odbc_conn_dsn.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
Dim MM_tourserv_STRING
MM_tourserv_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ= http:\\www.b2bpromotion.it\mdb-database\tourserv.mdb "
%>
quando vado ad aprire la pagina del secondo che cerca i dati sul DB del primo mi dà questo errore:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Not a valid file name.

/tourservice/index.asp, line 8 (sarebbe la linea che richiama la stringa di connessione resente nel file di inclusione tourserv.asp del secondo sito.

Ho provato a scrivere la path in tutti i modi. Considerate che nel sito standard, quello cioè che ha il DB nella stessa route, la path che aruba vuole è
MM_prentur_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ= D:\Web\b2bpromotionit\mdb_database\tourserv.mdb

Io ho in pratica scritto nella connessione del secondo sito la path completa dove è residente il DB del primo.

E' qui che sbaglio? Oppure la cartella mdb-database che contiene il DB non permette l'accesso a richieste che vengono dall'esterno della sua route?

Consideriamo anche che la macchina del provider che ospita il primo sito è 2000 server (nelle pagine asp metto "include file"), quella che ospita il secondo sito, quello che chiede i dati, è 2003 server (per cui le pagine hanno "include virtual") Chi mi può dare una mano?

Grazie in anticipo, anche perchè chiedere all'assistenza Aruba è come chiedere a Telecom.
Vi ho dato un bel questio, sono certo. Saluti a tutti.

lbenaglia Profilo | Guru

>MM_tourserv_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=
>http:\\www.b2bpromotion.it\mdb-database\tourserv.mdb "

Ciao Fabio,

"DBQ= http:\\www.b2bpromotion.it\mdb-database\tourserv.mdb " non è un path valido.
In DBQ devi specificare il percorso locale al file .mdb.
Se il file risiede su un server differente dovresti ricorrere ad una notazione UNC (\\server\share\file.mdb) ma dubito che Aruba o altro hoster siano disponibili ad abilitarti tale share...

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

rankx Profilo | Newbie

ciao lorenzo. grazie della velocità.

Tu mi stai dicendo, se non ho capito male, che se i due siti sono sullo stesso server allora può funzionare, come effettivamente in locale succede.

Se sono su due differenti server ci vuole nella stringa di connessione quella notazione che tu mi scrivi, giusto?

Se io chiedo ad aruba di mettermi questo secondo sito nella stessa macchina e nello stesso localhost potrebbe funzionare secondo te?

E tu conosci qualche provider che potrebbe farmi questa cosa?

grazie di nuovo

lbenaglia Profilo | Guru

>Se sono su due differenti server ci vuole nella stringa di connessione
>quella notazione che tu mi scrivi, giusto?
Occorre definire una share sul server che contiene il file .mdb, modificando la DBQ del sito che si trova sul secondo server per puntare ad essa.
Inoltre bisogna verificare che l'account con il quale gira il tuo Application Pool (se parliamo di IIS) abbia i diritti di share ed NTFS per accedere al file .mdb.

>Se io chiedo ad aruba di mettermi questo secondo sito nella stessa
>macchina e nello stesso localhost potrebbe funzionare secondo
>te?
La faccenda si semplificherebbe parecchio
Non occorrerebbe alcuna share e sarà sufficiente configurare allo stesso modo le due DBQ.

>E tu conosci qualche provider che potrebbe farmi questa cosa?
No, mi spiace.

>grazie di nuovo
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

rankx Profilo | Newbie

Immaginavo che l'unica soluzione fosse quella di mettere i due siti sullo stesso server, ed usare lo stesso DBQ.

Credo anch'io che nè aruba nè altri mi faranno questo share.

Grazie mille
saluti
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