Stò sviluppando un'applicazione ASP.Net utilizzando SQL Express come motore di database.
Come di consueto il database risiede nella cartella App_Data e la stringa di connessione prevede di creare una user instance:
<add name="SestanteConnectionString" connectionString="Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\Sestante.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
Il sito di test ha funzionato correttamente fino ad oggi quando le pagine asp.net hanno cominciato a dare il seguente errore:
Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.
In diversi post ho letto che il problema si risolve cancellando la cartella:
C:\Documents and Settings\[USERNAME]\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS
dopo aver stoppato il servizio SQL Express.
Ho provato ma questo fix non ne voleva sapere di funzionare. In realtà il suggerimento è corretto, però è necessaria una precisazione: io sbagliavo perchè cancellavo la cartella SQLExpress del mio utente locale, e questo è corretto quando si accede al database tramite l'IDE di Visual Studio.
Quando però l'accesso al database avviene tramite IIS l'utente è ASPNET è quindi è necessario cancellare la cartella:
C:\Documents and Settings\[COMPUTERNAME]\ASPNET\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS
Il problema sembra che si sia presentato dopo che ho installato SQL 2005.
ASP.net, SQL Server
sql express