When you use the AspDotNetProfile provider without providing a provider configuration in your web.config file, you are using the provider configuration in your machine.config file. Here's a sample from the default machine.config file distributed with .NET 4.0:
<profile>
<providers>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</profile>
The connection string that is referenced in this definition can also be found in machine.config:
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
It appears from your question that you haven't overrided the default profile definition in your web.config. So, what's happening is that the profile provider is looking for a SQL Server Express instance named SQLEXPRESS on the local machine. The reason is must be an Express instance is because User instances (see docs for AttachDBFilename) are only supported on the Express edition.
So, you have two choices: 1. Override the default provider configuration. this can be done by removing the default configuration and re-adding a configuration with the same name. 2. Set up a SQL Server Express instance with the default instance name on your web server.