Проблема с именем пользователя сервера сообщества - имя пользователя не найдено в магазине участников не существует - PullRequest
1 голос
/ 01 октября 2008

У меня часто возникает ошибка при установке нашего сервера сообщества, когда googlesitemap.ashx перебирается по определенному ID раздела. Я подозреваю, что имя пользователя было изменено, но посты не были повторены, чтобы отразить это.

Есть ли способ проверить целостность данных, выполнив оператор select для базы данных, или есть ли способ заставить базу данных выполнить повторную запись?

Ответы [ 2 ]

1 голос
/ 05 декабря 2008

Эта ошибка может быть выдана сервером сообщества, если он находит пользователей, которых нет в экземпляре MemberRoleProfileProvider.

См. CommunityServer.Users AddMembershipDataToUser () в качестве примера

UPDATE:


Я решил эту проблему для своего случая, заметив, что имена пользователей хранятся в двух таблицах - cs_Users и aspnet_Users. Оказывается, каким-то образом имя пользователя было различным в каждой таблице. Обновление вручную, чтобы имена были одинаковыми, устранило эту проблему.

Кроме того, пользователь не должен участвовать в следующей строке хранимой процедуры 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

@tbNames - это таблица имен, пришедшая от cs_Users (?) В какой-то момент, поэтому имена пользователей не совпадают, и пользователь не был добавлен в результат позже.


Смотри также: http://dev.communityserver.com/forums/t/490899.aspx?PageIndex=2

1 голос
/ 21 октября 2008

Не так много ответов, но вы можете найти затронутые записи данных, выполнив следующий запрос ...

Select * 
FROM cs_Posts
Where UserID Not In (Select UserID 
                     From cs_Users Where UserAccountStatus = 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...