Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Stringa di connessione con attacheddbfilename di un db mdf sqlexpress ...
martedì 10 novembre 2009 - 15.17
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
kduhcm
Profilo
| Junior Member
191
messaggi | Data Invio:
mar 10 nov 2009 - 15:17
Ciao ragazzi,
ho un sito web che si appoggia a un db sqlserver. In locale non ho problemi, mi collego al database con una connessione integrata windows. Ora dovrei prendere il miodb.mdf e spostarlo su un hosting a pagamento, perche' loro i database SqlServer li gestiscono cosi'. Ho messo il file miodb.mdf nella cartella app_data e tento di collegarmi con questa stringa di connessione
<add key="stringaConnessione" value="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|miodb.mdf;Integrated Security=True; User Instance=True;Initial Catalog=miodb;" />
Ho appurato che |DataDirectory| punta al percorso giusto, ma quando apro la pagina che si collega al database ho il seguente messaggio di errore:
L'utente non dispone dell'autorizzazione per l'esecuzione di questa azione.
Cosa sbaglio?
-----------------------------------------------------------------------------------------------------------------------
Sviluppo siti web Roma
http://www.actasoftware.com
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 11 nov 2009 - 01:33
>Ciao ragazzi,
Ciao
>ho un sito web che si appoggia a un db sqlserver. In locale non
>ho problemi, mi collego al database con una connessione integrata
>windows. Ora dovrei prendere il miodb.mdf e spostarlo su un hosting
>a pagamento, perche' loro i database SqlServer li gestiscono
>cosi'. Ho messo il file miodb.mdf nella cartella app_data e tento
>di collegarmi con questa stringa di connessione
><add key="stringaConnessione" value="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|miodb.mdf;Integrated
>Security=True; User Instance=True;Initial Catalog=miodb;" />
>Ho appurato che |DataDirectory| punta al percorso giusto, ma
>quando apro la pagina che si collega al database ho il seguente
>messaggio di errore:
>L'utente non dispone dell'autorizzazione per l'esecuzione di
>questa azione.
>Cosa sbaglio?
Quelle che stai usando, si chiamano User Instances, una cosa terribile e deprecata in sql server 2008. Anche il nostro Lorenzo afferma: "Questa funzionalità tipica di SQL Server Express prende il nome di User Instances. E' così un obrobrio, che in SQL Server 2008 Express è stata deprecata quindi sarà rimossa in SQL Server 11."
Se puoi, carica il database proprio sull'istanza del hosting su cui pubblichi. Hai comprato il servizio sql server? che hosting è?
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
kduhcm
Profilo
| Junior Member
191
messaggi | Data Invio:
mer 11 nov 2009 - 18:20
E' un hosting a basso costo. www.dominiofaidate.com
Ti danno 1 gb di hosting e 3 db mysql a 17 euro l'anno circa. Meno della meta' di aruba. Solo che, a differenza di aruba che ti da il pannello di controllo per gestire sql server, loro ti dicono di pubblicare il db nella cartella app_data e di connettertici. Preferisco lavorare con sql server che con mysql perche' cosi' posso riutilizzare piu facilmente il codice in altri contesti in cui lavoro. Perche' la user instance e' deprecata? Non e' che mi va in deadlog o qualcosa di simile se ho troppe connessioni al sito? Comunque questa e' la situazione. Cosa mi consigli?
-----------------------------------------------------------------------------------------------------------------------
Sviluppo siti web Roma
http://www.actasoftware.com
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 12 nov 2009 - 00:02
>dicono di pubblicare il db nella cartella app_data e di connettertici.
>Preferisco lavorare con sql server che con mysql perche' cosi'
>posso riutilizzare piu facilmente il codice in altri contesti
>in cui lavoro. Perche' la user instance e' deprecata?
perchè è terribile e si sono accorti che non è la strada da seguire.
>Non e' che mi va in deadlog o qualcosa di simile se ho troppe connessioni
>al sito? Comunque questa e' la situazione. Cosa mi consigli?
Intendi deadlock? no, dall'errore direi che semplicemente l'utente con cui gira il sito non ha i permessi per leggere il file mdf. Il deadlock è un'altra cosa e non conta quante connessioni hai.
Qui ti dice la motivazione:
http://support.dominiofaidate.com/index.php?action=artikel&cat=7&id=48&artlang=it
se però hai fatto tutto quello che serve, apri un ticket, essendo a basso costo, non so come siano configurati. Comunica il problema e fatti aiutare dall'helpdesk.
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
kduhcm
Profilo
| Junior Member
191
messaggi | Data Invio:
gio 12 nov 2009 - 10:44
Ok. Ma a cosa serve User Instance=True ? Cosa comporta il fatto di mettere o di non mettere questo parametro?
-----------------------------------------------------------------------------------------------------------------------
Sviluppo siti web Roma
http://www.actasoftware.com
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 12 nov 2009 - 10:51
>Ok. Ma a cosa serve User Instance=True ? Cosa comporta il fatto
>di mettere o di non mettere questo parametro?
http://msdn.microsoft.com/en-us/library/bb264564%28SQL.90%29.aspx
Significa che solo per una sql express, puoi definire l'utilizzo di user instance, e se è true il valore, il motore prende il file e fa l'attach al volo.
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
kduhcm
Profilo
| Junior Member
191
messaggi | Data Invio:
gio 12 nov 2009 - 15:09
Ok, pero' non ho capito una cosa: In che momento viene fatto l'attach? Fa ' l'attach al volo ' ogni volta che la pagina che si collega al database viene aperta? O la fa una volta sola (magari la prima volta che un utente si collega al sito, che sarebbe la cosa piu ottimale). In termini di prestazioni di quanto si e' penalizzati? Perche' io sto utilizzando la user instance in ambiente produzione, non sviluppo.
-----------------------------------------------------------------------------------------------------------------------
Sviluppo siti web Roma
http://www.actasoftware.com
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 12 nov 2009 - 15:21
>Ok, pero' non ho capito una cosa: In che momento viene fatto
>l'attach? Fa ' l'attach al volo ' ogni volta che la pagina che
>si collega al database viene aperta? O la fa una volta sola (magari
>la prima volta che un utente si collega al sito, che sarebbe
>la cosa piu ottimale). In termini di prestazioni di quanto si
>e' penalizzati? Perche' io sto utilizzando la user instance in
>ambiente produzione, non sviluppo.
leggendo attentamente il link che ti ho mandato vedrai questa riga:
"User instance databases have the Auto Close option set so that if there are no connections to a database for 8-10 minutes, the database shuts down and the file is closed. This happens automatically, but it can take a while, especially if connection pooling is enabled for your connections."
Quindi la prima connessione fa attach, e se per 8-10 minuti non ci sono accessi, si chiude la connessione e il db fa shut down (file chiuso).
Di sicuro non è la scelta da fare in produzione per vari motivi:
- traffico rallentato
- sono deprecate ed in 2011 non le avrai più
- tempi di latenza per alcuni utenti alti
Insomma, meglio una connessione "classica" senza user instances.
--
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
Torna su
Stanze Forum
Elenco Threads
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 !