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:
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]ASPNETLocal SettingsApplication DataMicrosoftMicrosoft SQL Server DataSQLEXPRESS
Il problema sembra che si sia presentato dopo che ho installato SQL 2005.
Thanks a lot.
The fix worked in this context: SQL Server 2005 Express uninstalled followed by a SQL Server 2008 Express installation, trying to use the standard ASPNETDB.mdf membership database.