コミュニティサーバーのユーザー名の問題-メンバーシップストアに見つからないユーザーユーザー名は存在しません
-
03-07-2019 - |
質問
特定のセクションIDでgooglesitemap.ashxをトラバースするたびに、コミュニティサーバーのインストールで頻繁にエラーが発生します。ユーザー名が修正されたと思われますが、これを反映するために投稿は再キャッシュされません。
データベースでselectステートメントを実行することでデータの整合性を確認する方法はありますか、データベースを強制的に再キャッシュする方法はありますか?
解決
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
他のヒント
それほど多くはありませんが、次のクエリを実行すると、影響を受けるデータエントリを見つけることができます...
Select *
FROM cs_Posts
Where UserID Not In (Select UserID
From cs_Users Where UserAccountStatus = 2)