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

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

有帮助吗?

解决方案

如果社区服务器发现不在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/论坛/吨/ 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