Autorizzazioni apertura database
ciscos non è online. Ultima attività: 14/11/2008 14.28.37ciscos
Inserito il: 16 febbraio 2008 19.31
57 messaggi dal 08 apr 2003 Istalla Microsoft Silverlight!
Salve,
Ho il seguente problema che si presenta sporadicamente e dunque non riesco a capire dacosa possa dipendere.

Quando vado a fare una qualsiasi operazione su database access (dentro una cartella in wwwroot) mi dice "file è aperto in accesso esclusivo da un altro utente o non si dispone delle autorizzazioni necessarie per aprire il file" ora tutto funziona bene fino a quando una qualche operazione non va ad agiornare il database.

Ho provato ad dare tutte le autorizzazioni a tutti gli utenti ma non va compreso IUSR_

Dunque qualche cosa mi fa pensare che forse ho lasciato aperta qualche connesisone ma non cambia nulla anche riavvinado IIS o il pc.

L'unica cosa che sono riuscito a fare è prendere un database vecchio dalla macchina con la quale sviluppo l'applicazione e ricopiarci dentro le tabelle con i dati, allora tutto ricomincia a funzionare.
Microsoft Most Valuable Professional
Re: Autorizzazioni apertura database
Daniele Bochicchio non è online. Ultima attività: 19/11/2008 19.22.06Daniele Bochicchio
Inserito il: 18 febbraio 2008 09.50
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 10007 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
ciscos wrote:
Dunque qualche cosa mi fa pensare che forse ho lasciato aperta qualche connesisone ma non cambia nulla anche riavvinado IIS o il pc.

probabilmente. ad esempio, se lo apri usando Access, è possibilissimo che te lo blocchi e l'applicazione web non riesca ad accederci.
se poi lasci aperta la connessione o il datareader senza chiuderlo, questa può essere un'altra possibile causa.

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight
Re: Autorizzazioni apertura database
ciscos non è online. Ultima attività: 14/11/2008 14.28.37ciscos
Inserito il: 18 febbraio 2008 17.58
57 messaggi dal 08 apr 2003 Istalla Microsoft Silverlight!
Penso di aver capito cosa sia successo, un utente mi ha riferito che l'applicazione si era bloccata su un inserimento di record e da lì in poi non ha più funzionato.

Esiste un modo per sapere se ci sono ancora connessioni aperte o se un database è stato chiuso in maniera non corretta? Ho notato che access crea un file temporaneo fino a che non si chiude l'applicazione.

Ricordo inoltre che il mio problema persiste anche riavviando IIS o il PC.

Modificato da ciscos il 18 febbraio 2008 18.00 -
Microsoft Most Valuable Professional
Re: Autorizzazioni apertura database
Daniele Bochicchio non è online. Ultima attività: 19/11/2008 19.22.06Daniele Bochicchio
Inserito il: 19 febbraio 2008 12.24
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 10007 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
ciscos wrote:
Esiste un modo per sapere se ci sono ancora connessioni aperte o se un database è stato chiuso in maniera non corretta? Ho notato che access crea un file temporaneo fino a che non si chiude l'applicazione.

sì, usare il blocco using:
http://www.aspitalia.com/script/605/Using-Dispose-Automatico-CSharp.aspx http://blogs.aspitalia.com/ricciolo/post2177/Usate-Statement-Using.aspx
in VB è Using... End Using, ma c'è bisogno quanto meno del .NET Framework 2.0.

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight
Re: Autorizzazioni apertura database
ciscos non è online. Ultima attività: 14/11/2008 14.28.37ciscos
Inserito il: 19 febbraio 2008 20.44
57 messaggi dal 08 apr 2003 Istalla Microsoft Silverlight!
ciscos wrote:
Esiste un modo per sapere se ci sono ancora connessioni aperte o se un database è stato chiuso in maniera non corretta? Ho notato che access crea un file temporaneo fino a che non si chiude l'applicazione.


Daniele Bochicchio ha scritto:
sì, usare il blocco using:
in VB è Using... End Using, ma c'è bisogno quanto meno del .NET Framework 2.0.


Ok ma io ho uso asp 1.1, non è possibile fare qualche cosa ad esempio dagli strumenti di amministrazione di IIS?
Microsoft Most Valuable Professional
Re: Autorizzazioni apertura database
Daniele Bochicchio non è online. Ultima attività: 19/11/2008 19.22.06Daniele Bochicchio
Inserito il: 20 febbraio 2008 08.47
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 10007 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
ciscos wrote:
Ok ma io ho uso asp 1.1, non è possibile fare qualche cosa ad esempio dagli strumenti di amministrazione di IIS?

come fa IIS a sapere cosa scrivi tu nel codice? è compito tuo di sviluppatore scrivere codice che verifichi come vengono gestite le risorse, non del server web.
se usi la 1.1 e VB, la soluzione è mettere tutto in un blocco try...catch, con un finally dove fai il Dispose/Close di tutti gli oggetti che utilizzi e che implementano l'interfaccia IDisposable, come Connection, Command e DataReader.

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight
Re: Autorizzazioni apertura database
ciscos non è online. Ultima attività: 14/11/2008 14.28.37ciscos
Inserito il: 20 febbraio 2008 22.38
57 messaggi dal 08 apr 2003 Istalla Microsoft Silverlight!
ok, proverò a chiudere tutti gli oggetti e vediamo. Per il momento grazie.
Re: Autorizzazioni apertura database
ciscos non è online. Ultima attività: 14/11/2008 14.28.37ciscos
Inserito il: 09 ottobre 2008 22.13
57 messaggi dal 08 apr 2003 Istalla Microsoft Silverlight!
Scusate se riprongo questo post, ma ancora non sono riuscito ad eliminare il problema.

In questi giorni mi sto accingendo a rivisitare tutto il codice per aggiungere, dove mancano, i blocchi Try catch.

Quando chiamo i metodi Delete, update e fill di un dataadapter le connessioni vengono chiuse dai metodi o devo chiuderle a mano anche lì?

Poco fa ho trovato un articolo di Riccardo Golia scritto nel 2004: http://blogs.aspitalia.com/rickyvr/post694/DataAdapter-Connessioni.aspx

Riporto la parte che mi ha fatto pensare che forse il Poller non elimini la connessione rimasta aperta. E' una possibilità? e come è possibile resettare il poller "a mano"? o non è il mio caso?

-------------
...pool di connessioni. Un oggetto Connection viene rimosso dal pool se è scaduto il suo ciclo di vita oppure se si viene a verificare una anomalia. In ogni caso il pooler ispeziona periodicamente i vari pool e rimuove qullo che c'è da rimuovere (ovvero le connessioni scadute o non valide).

Nel caso di connessioni OLEDB è il componente OLEDB service a gestire il pooling. Il lancio del metodo Close o Dispose per una connessione OLEDB esegue il metodo Marshal.ReleaseComObject: questo sta a testimoniare il legame tra l'ambiente managed di ADO.NET e l'ambiente unamanaged sottostante.

Modificato da ciscos il 09 ottobre 2008 22.19 -

2 pagine: [1] 2 Avanti >>

Vai a:
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.


gghi - 1010 pt
PeppeDotNet - 700 pt
vladimiro - 210 pt

Iscriviti anche tu e raccogli punti. Questo mese in palio Windows Vista Ultimate, ANTS Profiler e 1 ebook!


COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums