Getting a SQL LocalDB to create an ASPNETDB data base without aspnet_regsql

I started working today on a solution I had not worked on for a while. It makes use of an ASP.NET web application as a site to host SharePoint webparts (using Typemock to mock out any troublesome calls). The problem I had was that when I opened this VS2010 solution in VS2012 I could not run up this test web site. As the test web pages have WebpartManager controls it needs an ASPNETDB in the AppData folder to persist the settings data. This is usually auto created when SQLExpress is installed, problem is with VS2012 you get the newer LocalDB and I am trying to avoid installing SQLExpress

So the first step was to modify the web.config to point to the right place, by adding

<connectionStrings>
    <clear/>
    <add name="LocalSQLServer" connectionString="Data Source=(LocalDB)\projects; Integrated Security=true ;AttachDbFileName=|DataDirectory|ASPNETDB.mdf" providerName="System.Data.SqlClient"/>
  </connectionStrings>

I then loaded the web site but got the error

An error occurred during the execution of the SQL file ‘InstallMembership.sql’. The SQL error number is -2 and the SqlException message is: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.

after a retry I saw

An error occurred during the execution of the SQL file ‘InstallCommon.sql’. The SQL error number is 5170 and the SqlException message is: Cannot create file ‘C:\PROJECTS\SABS\SOURCE\SABS\SABSWEBSERVICETESTHARNESS\APP_DATA\ASPNETDB_TMP.MDF’ because it already exists. Change the file path or the file name, and retry the operation.
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
Creating the ASPNETDB_5689a053209d438db3622d593ea632fb database…

So I decided to try the aspnet_regsql.exe in wizard mode from the .NET 4 framework folder to populate a pre-created DB, this gave the same timeout errors as seen when it was run by the web process

So finally I tried the following process

  1. Created a new empty DB in the APPDATA folder attached to my LocalDB instance in SQL Server Object Explorer
  2. From the .NET framework folder loaded and then ran the following SQL scripts (in the order they were listed in the folder)
  3. —        16/08/2012     12:59      24603 InstallCommon.sql
    —        16/08/2012     12:59      56073 InstallMembership.sql
    —        16/08/2012     12:59      52347 InstallPersistSqlState.sql
    —        16/08/2012     12:59      34950 InstallPersonalization.sql
    —        16/08/2012     12:59      20891 InstallProfile.SQL
    —        16/08/2012     12:59      34264 InstallRoles.sql

  4. Made sure my test harness targeted .NET 4
  5. and my test harness loaded

Not a great solution but it got me working, especially as I could find little on ASPNETDB and LocalDB

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>