Community-Server Benutzername Problem - User Benutzername nicht in Mitgliedschaftsspeicher gefunden existiert nicht
-
03-07-2019 - |
Frage
Ich habe einen Fehler häufig von unserer Server-Installation auftreten, wenn die googlesitemap.ashx auf einem bestimmten sectionid durchlaufen wird. Ich vermute, dass ein Benutzername geändert wurde, aber die Beiträge havn't erneut zwischengespeichert, dies zu reflektieren.
Gibt es eine Möglichkeit ein, die Daten integruity auf der Datenbank durch Ausführen einer Select-Anweisung überprüfen, alternativ gibt es eine Möglichkeit, die Datenbank zu zwingen zu recache?
Lösung
Dieser Fehler könnte durch Community-Server geworfen werden, wenn es Benutzer findet, die nicht in der Instanz von MemberRoleProfileProvider ist.
Siehe CommunityServer.Users AddMembershipDataToUser () als Beispiel
UPDATE:
Ich löste dieses Problem für meinen Fall von zu bemerken, dass die Benutzernamen in zwei Tabellen gespeichert sind - cs_Users und aspnet_Users. Es stellte sich irgendwie der Benutzername aus in jeder Tabelle war anders. so die Namen waren das gleiche feste dieses Problem manuell zu aktualisieren.
Auch würde der Benutzer in der folgenden Zeile der gespeicherten Prozedur aus der Mitgliedschaft links 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
Die @tbNames ist eine Tabelle mit Namen von cs_Users kommt (?) Zu einem bestimmten Zeitpunkt und daher haben die Benutzername nicht überein, und Benutzer wurde auf das Ergebnis später nicht mehr eingefügt.
Siehe auch: http://dev.communityserver.com/ Foren / t / 490899.aspx? Pageindex = 2
Andere Tipps
Nicht so sehr eine Antwort, aber Sie können die betroffenen Dateneinträge finden, indem Sie die folgende Abfrage ausgeführt wird ...
Select *
FROM cs_Posts
Where UserID Not In (Select UserID
From cs_Users Where UserAccountStatus = 2)