社区服务器用户名问题 - 用户在会员商店中找不到的用户名不存在

时间:2008-10-01 08:20:56

标签: asp.net sql community-server

每当在特定的sectionID上遍历googlesitemap.ashx时,我的社区服务器安装经常会出现错误。我怀疑用户名已被修改,但是这些帖子没有被回复以反映这一点。

有没有办法可以通过在数据库上执行select语句来检查数据集成,或者是否有办法强制数据库重新缓存?

2 个答案:

答案 0 :(得分:1)

不是一个答案,但您可以通过运行以下查询找到受影响的数据条目...

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

答案 1 :(得分:1)

如果社区服务器发现不在MemberRoleProfileProvider实例中的用户,则可能抛出此错误。

请参阅CommunityServer.Users AddMembershipDataToUser()作为示例

<强>更新


我通过注意到用户名存储在两个表中来解决这个问题 - 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