Secondo il tuo commento, sembra che tu non abbia configurato esplicitamente un provider di ruoli per il tuo sito.
Se tutto ciò che è nel tuo web.config è:
<roleManager enabled="true" />
Quindi ti affidi ai provider predefiniti dichiarati più in alto nella gerarchia di configurazione (machine.config, global web.config, ecc.)
In machine.config probabilmente hai qualcosa come:
<roleManager>
<providers>
<add name="AspNetSqlRoleProvider"
connectionStringName="LocalSqlServer"
applicationName="/"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<add name="AspNetWindowsTokenRoleProvider"
applicationName="/"
type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
Come puoi vedere, il primo provider è configurato per utilizzare una connectionString chiamata LocalSqlServer, che di solito è anche dichiarata in machine.config:
<add name="LocalSqlServer"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient"/>
E questo è progettato per utilizzare un database basato su file locale che verrà creato se non esiste già.
Quindi, per far funzionare i ruoli sul tuo sito, dovresti modificare il tuo web.config root in qualcosa del tipo:
<roleManager enabled="true">
<providers>
<clear />
<add name="AspNetSqlRoleProvider"
connectionStringName="YourConnectionStringName"
applicationName="/"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
L'utilizzo dell'elemento