2008-10-01 5 views
1

Une erreur se produit fréquemment lors de l'installation de notre serveur de communauté chaque fois que googlesitemap.ashx est traversé par un sectionID spécifique. Je soupçonne qu'un nom d'utilisateur a été modifié, mais les messages n'ont pas été ajoutés pour refléter cela.Problème de nom d'utilisateur du serveur de communauté - Utilisateur Le nom d'utilisateur introuvable dans la banque d'appartenance n'existe pas

Existe-t-il un moyen de vérifier l'intégrité des données en effectuant une instruction select sur la base de données, ou est-il possible de forcer la base de données à se remettre en cache?

Répondre

1

Cette erreur pourrait être lancée par serveur communautaire si elle trouve les utilisateurs qui ne sont pas l'instance de MemberRoleProfileProvider.

Voir CommunityServer.Users AddMembershipDataToUser() comme un exemple

MISE À JOUR:


J'ai résolu ce problème pour mon cas en remarquant que les noms d'utilisateur sont stockées dans deux tables - cs_Users et aspnet_Users. Il s'avère que le nom d'utilisateur était DIFFERENT dans chaque tableau. La mise à jour manuelle de sorte que les noms étaient les mêmes a résolu ce problème.

En outre, l'utilisateur laissé sur l'appartenance à la ligne suivante de la procédure stockée cs_Membership_GetUsersByName:

INSERT INTO @tbUsers 
    SELECT UserId 
    FROM dbo.aspnet_Users ar, @tbNames t 
    WHERE LOWER(t.Name) = ar.LoweredUserName AND ar.ApplicationId = @ApplicationId 

Le @tbNames est une table de noms vient de cs_Users à un moment donné et (?) par conséquent, les noms d'utilisateur ne correspondent pas et l'utilisateur n'a pas été inséré dans le résultat plus tard.


Voir aussi: http://dev.communityserver.com/forums/t/490899.aspx?PageIndex=2

1

Pas tellement une réponse, mais vous pouvez trouver les entrées de données affectées en exécutant la requête suivante ...

Select * 
FROM cs_Posts 
Where UserID Not In (Select UserID 
        From cs_Users Where UserAccountStatus = 2) 
Questions connexes