1

特定のセクション ID で googlesitemap.ashx がトラバースされるたびに、コミュニティ サーバーのインストールから頻繁にエラーが発生します。ユーザー名が修正されたと思われますが、これを反映するために投稿が再キャッシュされていません。

データベースで select ステートメントを実行してデータの整合性をチェックする方法はありますか? あるいは、データベースを強制的に再キャッシュする方法はありますか?

4

2 に答える 2

1

このエラーは、MemberRoleProfileProvider のインスタンスにないユーザーが見つかった場合、コミュニティ サーバーによってスローされる可能性があります。

例としてCommunityServer.Users AddMembershipDataToUser()を参照してください

アップデート:


ユーザー名が cs_Users と aspnet_Users の 2 つのテーブルに格納されていることに気付き、この問題を解決しました。どういうわけか、各テーブルでユーザー名が異なっていたことがわかりました。名前が同じになるように手動で更新すると、この問題が修正されました。

また、ユーザーは、ストアド プロシージャ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

于 2008-12-05T01:50:29.907 に答える
1

それほど多くの答えではありませんが、次のクエリを実行すると、影響を受けるデータ エントリを見つけることができます...

Select * 
FROM cs_Posts
Where UserID Not In (Select UserID 
                     From cs_Users Where UserAccountStatus = 2)
于 2008-10-21T14:14:36.380 に答える