J'écris un service web WCF qui permet d'enregistrer de nouveaux utilisateurs dans le système. J'ai donc le contrat d'exploitation suivant:Quelle transaction IsolationLevel devrais-je utiliser?
[ServiceContract]
public interface ISecurityService
{
/// <summary>
/// Register new user in system, if no exceptions were thrown
/// user was registered successfully
/// </summary>
[OperationContract]
[FaultContract(typeof(SecurityFaultException))]
void Register(string userName, string password);
}
L'idée est simple comment synchroniser Register
appel de méthode pour empêcher l'enregistrement de deux utilisateurs avec le même nom?
J'ai pensé utiliser IsolationLevel.Serializable
mais je ne suis pas sûr de cette solution. Quelqu'un peut-il me donner un bon conseil ou partager de bonnes pratiques sur la synchronisation des services WCF?
MISE À JOUR: Je sauvegarde les utilisateurs dans une base de données.
Pourquoi voulez-vous sérialiser les appels de registre? (Ceci pour comprendre la nature du besoin d'isolation des transactions.) – Richard
où stockez-vous les utilisateurs enregistrés? En mémoire ou dans une base de données? –
Je pense que cela devrait suffire quand UserName a une contrainte Unique dans le Db. IsolationLevel ne devrait pas être pertinent pour Insert. –