Cercando su Google con i tag Stack Overflow mi sono imbattuto in questo sito:http://www.lhotka. net/weblog/CallingRolesGetRolesForUserInAWCFService.aspx
In breve:a quanto pare qualcosa si è rotto tra .net 3.5 e .net 4.
Per risolvere questo problema chiama:
string[] roles = Roles.Provider.GetRolesForUser(ServiceSecurityContext.Current.PrimaryIdentity.Name);
invece di
string[] roles = Roles.GetRolesForUser(ServiceSecurityContext.Current.PrimaryIdentity.Name);
La differenza è nel .Provider
che viene aggiunto nel mezzo. Dopo averlo aggiunto ha funzionato bene.