每当在特定的sectionID上遍历googlesitemap.ashx时,我的社区服务器安装经常会出现错误。我怀疑用户名已被修改,但是这些帖子没有被回复以反映这一点。
有没有办法可以通过在数据库上执行select语句来检查数据集成,或者是否有办法强制数据库重新缓存?
答案 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