خادم المجتمع المستخدم المسألة المستخدم اسم المستخدم لم يتم العثور على في عضوية المخزن غير موجود
-
03-07-2019 - |
سؤال
لدي خطأ التي تحدث في كثير من الأحيان من مجتمعنا تثبيت ملقم كلما googlesitemap.ashx اجتاز على معين sectionID.وأظن أن المستخدم قد تم تعديله ولكن الوظائف havn't recached لتعكس هذا.
هل هناك طريقة يمكن التحقق من البيانات integruity قبل تنفيذ عبارة select على قاعدة البيانات بدلا من ذلك هل هناك طريقة لإجبار قاعدة بيانات recache?
المحلول
هذا الخطأ يمكن أن يكون طرح من قبل المجتمع الخادم إذا كان يجد المستخدمين لا مثيل MemberRoleProfileProvider.
انظر CommunityServer.المستخدمين 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
نصائح أخرى
وليس ذلك بكثير على الجواب، ولكن يمكنك العثور على إدخال البيانات تتأثر تشغيل الاستعلام التالي ...
Select *
FROM cs_Posts
Where UserID Not In (Select UserID
From cs_Users Where UserAccountStatus = 2)