Mi è capitato di leggere nei forum, in alcune occasioni, problemi di installazione e nell'uso del provider Access rilasciato da Microsoft nelle proprie applicazione asp.net.
In effetti la scelta di creare un pacchetto che crea un template in Visual Studio 2005 è discutibile. Ottima per creare nuovi progetti ma pessima nei casi in cui si voglia utilizzare in progetti già esistenti, soprattutto per i neofiti.
Per utilizzare il provider in questione nei propri progetti sono sufficienti poche azioni. Innanzitutto è necessario andare nella directory dove l'installer del provider ha inserito il file zippato del template. Solitamente in un percorso di questo tipo:
"C:\Visual Studio 2005\Templates\ProjectTemplates\Visual Web Developer\Starter Kits"
Il file è in questione ha il nome "ASP.NET Access Providers.zip". Possiamo decomprimerlo in una qualsiasi directory di nostro gusto.
In alternativa è possibile creare un nuovo progetto direttamente da VS 2005 con questo template.
In entrambi i casi ora ci serve una versione compilata del provider. Per la compilazione è sufficiente caricare da Visual Studio il progetto, quindi compilare il tutto in release mode. Ok, ora nella directory "bin/Release" sarà presente la .dll da utilizzare nei propri progetti insieme ad altri file. Quelli di nostro interesse sono:
- SampleAccessProviders.dll
- ASPNetDB.mdb
Il primo è la dll da copiare nella directory bin della web application in cui vogliamo utilizzare il provider Access, il secondo è il database Access che dovremo copiare nella directory "App_Data".
Ora è sufficiente il tutto nel web.config della nostra web application:
<configuration>
<connectionStrings>
<add name="AccessFileName" connectionString="~/App_Data/ASPNetDB.mdb" providerName="System.Data.OleDb"/>
</connectionStrings>
<system.web>
<membership defaultProvider="AccessMembershipProvider">
<providers>
<add name="AccessMembershipProvider"
type="Samples.AccessProviders.AccessMembershipProvider"
connectionStringName="AccessFileName"
enablePasswordRetrieval="false"
enablePasswordReset="false"
requiresUniqueEmail="false"
requiresQuestionAndAnswer="false"
minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0"
applicationName="SampleSite"
hashAlgorithmType="SHA1"
passwordFormat="Hashed" />
</providers>
</membership>
</system.web>
</configuration>Spero che questo brevissimo tutorial possa servire a qualcuno.
ho anch'io questo problema,se qualcuno è riuscito a venirne a capo vi chiedo se potete aiutare anche me,non ho una connessione veloce per poter scaricare visual c# express per poter compilare il tutto e generare questa dll.
grazie
Scusate...
Sono due giorni che ci sbatto la testa ma non capisco dove sta l'errore in quanto non si trovano in rete notizie chiare e certe...
Utilizzo il Provider Access funziona tutto: registrazione, cambio password, login.. ecc.. ecc... l'unico problema ce l'ho per rigenerare una nuova password dico rigenerare perchè ho letto che non si può riottenere la password se è stata creata in questo modo:
hashAlgorithmType="SHA1"
passwordFormat="Hashed"
Il probelma si presenta quando inserisco la username nel controllo PassWordRecovery e premo invia per recuperare, ovvero generare una nuova poassword ricevo la seguente eccezione:
"Il provider di appartenenze non supporta il recupero o la reimpostazione della password."
Ho fatto anche una prova con:
Dim value As Boolean
value = Membership.EnablePasswordRetrieval
Che ovviamente mi restituisce "false"
Arrivo alla domanda con la speranza che qualcuno mi possa togliere definitivamente tutti i dubbi:
Il Provider Access supporta il recupero/rigenera della password o più semplicemente sbaglio qualcosa nel web.config?
Attendo una gentile risposta da qualcuno ferrato in materia, prima che mi disintegri il capo tirando una testata nel monitor!
Saluti e buona giornata a tutti
Il provider "Microsoft.Jet.OLEDB.4.0" non è registrato sul computer locale
Sto provando in tutti i modi, ho messo la dll sotto bin e modificato il web.config
secondo voi da cosa può dipendere ???
Sono nella ca**a
aiuto please
ti ho già risposto qui http://forum.aspitalia.com/forum/post/290323/VisualWebDeveloper2005-Access.aspx
Salve! E' la prima volta che provo a scrivere un messaggio. Premetto che sono ignorantissima in materia, infatti, ho seguito tutte le istruzioni per configurare (e utilizzare) il provider Access in asp.net 2.0, ma mi sono bloccata qui:
Per la compilazione è sufficiente caricare da Visual Studio il progetto, quindi compilare il tutto in release mode. Ok, ora nella directory "bin/Release" sarà presente la .dll da utilizzare nei propri progetti insieme ad altri file. Quelli di nostro interesse sono:
SampleAccessProviders.dll
Che significa compilare in release mode??? E con Visual Studio, si intende Visual Web Developer 2005 Express Edition? O forse è qui il mio problema, io ho questo ed anche Visual Basic 2005 Express Edition, ma non altro.
Ho seguito anche un'altra indicazione:
http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=404
Ma anche da qui non ci ho cavato le gambe. A me queste cavolo di ".dll" non appaiono! Anche usando Visual C#, ed avendo fatto e rifatto tutto, niente. Certo che... in inglese:) non è proprio il mio forte.
Ho visto che siete tanto tanto pazienti e carini, io provo ad aspettare una risposta..GRAZIE mille già da ora.
salve, ho provato a usare il provider access in asp.net 2.0,
e l'ho usato per trasportare dati da una pagina all'altra
evitando di usare la cache o session.
sul mio pc tutto ok, ma su aruba, sia che la cache, che usando il provider access 2.0, dopo che giro per le pagine, perdo i dati...
qualcuno mi può aiutare?
grazie
salve a tutti. con vwd 2005 versione express non è possibile compilare la DLL...come faccio a configurare i file sorgenti?
grazie
paola
Come si fa ad effettuare la compilazione del provider usando visual web devepoler 2005?
Nell'esempio bastava caricare il tutto con visual studio 2005...
L'errore è il seguente:
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
Sono riuscito a configurare il provider Access e a farlo funzionare correttamente. Se però il database ASPNetdb.mdb lo copio in una cartella diversa da App_Data e configuro la stringa di connessione in modo che si riferisca alla nuova cartella e non ad App_Data, viene generato un errore al caricamento di una pagina al momento del salvataggio del profilo di un utente anonimo.
L'errore è:
Impossibile visualizzare la pagina
.
.
.
HTTP 500 - Errore interno del server
Internet Explorer
Potrebbe essere un problema di permessi di accesso al database ASPNetDB.mdb? Nella stessa cartella in cui è presente questo db, ho anche un altro database access che funziona correttamente.
Ciao,
ma come configuri la stringa di connessione?
I permessi in quella directory dove hai inserito il db permettono la scrittura e modifica dei file per l'utente asp.net (in caso di windows xp)?
Ciao,
questa è la mia configurazione del file web.config:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="DatabaseConnection" connectionString="~/mdb-database/ASPNetDB.mdb" providerName="System.Data.OleDb"/>
</connectionStrings>
<system.web>
<anonymousIdentification enabled="true" cookieTimeout="525600" />
<profile defaultProvider="AccessProfileProvider">
<providers>
<add name="AccessProfileProvider"
type="Samples.AccessProviders.AccessProfileProvider"
connectionStringName="DatabaseConnection" />
</providers>
<properties>
<add name="UserID" type="System.String" allowAnonymous="true" />
</properties>
</profile>
</system.web>
</configuration>
Ho configurato il provider Profile in modo da utilizzare un database Access. Dal momento che pubblico il sito su Aruba, ho a disposizione la cartella mdb-database che ha i permessi di lettura e scrittura. Sul mio pc ho la stessa configurazione, la cartella mdb-database ha i permessi di lettura e scrittura infatti oltre al database ASPNetDB.mdb ho anche un altro database che funziona correttamente.
Il mio obiettivo è quello di avere due database, uno è quello di ASP.NET che gestisce gli utenti, la personalizzazione ecc. e l'altro è quello che io gestisco per la mia applicazione. Dal momento che Aruba mi da a disposizione la cartella mdb-database, volevo avere i due database nella stessa cartella dato che questa ha i permessi di lettura e scrittura.
Ho provato questa configurazione sul mio pc ma si verifica un errore, non ho provato a pubblicare il sito su Aruba: posso fare una prova per vedere se il problema si presenta una volta pubblicato il sito.
Per torgliermi ogni dubbio ho fatto un test in locale e nel mio caso funziona tutto correttamente: posso spostare il database in questione, con la necessaria modifica della stringa di connessione, e la membership su access continua a funzionare correttamente.
Il problema curioso nel tuo caso è l'errore generico che ti ritorna una pagina richiamata con quella configurazione. Ho fatto varie prove in merito, e in ogni caso ottengo errori del tipo "file access non trovato" o "percorso errato", ma mai un generico 500 come nel tuo.
Se hai possibilità, prova il tuo esempio su Aruba e verifica eventuale anomalie. Altro, per il momento, non riesco a suggerirti
Ciao
Aggiungendo l'utente ASPNET al gruppo Administrators, funziona tutto correttamente.
"OasisLiveForever" <OasisLiveForever> ha scritto nel messaggio news:264035@...
Aggiungendo l'utente ASPNET al gruppo Administrators, funziona tutto correttamente.
il che non è proprio il massimo della sicurezza
Dunque è un problema di permessi! E come dice il buon Christian, non è molto consigliato dare all'utente aspnet permessi di amministratore.
Verifica che anche il database Access abbia i permessi per quell'utente in modifica/scrittura, oltre alla directory in cui è.
Ciao
Hai ragione, infatti era solo una prova per verificare se effettivamente era un problema di permessi. Ora rimuovo l'utente ASPNET dal gruppo Administrators e controllo i permessi sul database.
Grazie.
Ciao. Ho trovato molto interessante questo post però non ho ben capito.
Dunque, la mia difficoltà sta nel fatto che il codice del provider è in C# e viene inserito nei template dei progetti in C# e non nei siti web.
Come posso utilizzarlo? Se provo a compilare la DLL e inserirla in un sito web nella cartella BIN, appena provo a compilare mi da un errore:
Error1Impossibile caricare il file o l'assembly 'ASP.NET Access Providers' o una delle relative dipendenze. La definizione di manifesto dell'assembly specificato non corrisponde al riferimento all'assembly. (Eccezione da HRESULT: 0x80131040)
Grazie e ciao.
Davide
Quell'errore è strano.
Sicuro che non ci sua un'altra dll che fa in qualche modo conflitto con quella appena creata? Hai inserito una differente versione della dll nella GAC?
Ciao
Ho riletto bene l'articolo e avevo sbagliato io.
Non funziona se si crea un progetto partendo dallo StarterKit ma solo se si estrae, si apre e si compila. Altrimenti cambia la versione.
Non mi so spiegare bene cmq adesso funziona.
Grazie per l'articolo e la risposta, mi è stato molto utile.
Ciao,
Davide
Avevo notato stranezze nei progetti dallo starter kit. Ed è per quello che ho preferito la soluzione che ho suggerito in quel tutorial
Ciao!
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.





Stampa
Download 
10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!

scusate ma non ho capito, chi ha solo visual express come genera questa famigerata dll?
grazie per chi vorrà rispondere
Continua »»» | Rispondi »»»