Проблема с именем пользователя на сервере сообщества: имя пользователя, не найденное в хранилище участников, не существует.

StackOverflow https://stackoverflow.com/questions/156688

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Есть ли способ проверить целостность данных, выполнив оператор выбора в базе данных, или есть ли способ заставить базу данных выполнить повторное кэширование?

Это было полезно?

Решение

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

См. CommunityServer.Users. ДобавитьMembershipDataToUser() В качестве примера

ОБНОВЛЯТЬ:


Я решил эту проблему для своего случая, заметив, что имена пользователей хранятся в двух таблицах — 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

Другие советы

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

Select * 
FROM cs_Posts
Where UserID Not In (Select UserID 
                     From cs_Users Where UserAccountStatus = 2)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top