asp.net – 登录后对Membership.GetAllUsers()的例外情况:“项目已添加”
| 
                         我有两个共享会员提供商的网站.其中一个是ASP Playground站点,另一个是安装了ASP Playground站点集成包的站点.我们称他们为ASPPG网站和SIP网站. 我在SIP站点上运行Membership.GetAllUsers()时有时会出错. 它有时只会发生.我注意到只有在其中一个成员发生某种变化时才会发生这种情况.然后它必须重新创建在调用Membership.GetAllUsers()时存储所有用户的哈希表,这就像这种娱乐在某种程度上出错了. 除了我粘贴在“administratoren”下面的例外,登录的用户名已经改变了一些信息. 通过更新web.config强制网站卸载没有帮助. 导致异常的原因是什么?如何阻止它? 完整的例外是这样的: 
 MemberInfo.cs的内容如下: public class MemberInfo {
    public string Username { get; set; }
    public string FirstName { get; set; }
    public string MiddleName { get; set; }
    public string LastName { get; set; }
    public string Fullname { get; set; }
    public string AddressPrimary { get; set; }
    public string AddressSecondary { get; set; }
    public string Zip { get; set; }
    public string Country { get; set; }
    public string HomepageUrl { get; set; }
    public string Id { get; set; }
    public string MemberNo { get; set; }
    public Boolean IsApproved { get; set; }
    public string Email { get; set; }
    public Boolean IsNotMember { get; set; }
    public Boolean IsUpdated { get; set; }
    public Boolean HasReceivedWelcomeMail { get; set; }
    public int RandomNumber { get; set; }
    public int MemberType { get; set; }
    public MemberInfo() { 
    }
    public MemberInfo(string _username,string _id) {
        Username = _username;
        MembershipUser userRequested = Membership.GetUser(Username);
        ProfileBase profile = ProfileBase.Create(Username);
        IsApproved = userRequested.IsApproved;
        FirstName = profile.GetPropertyValue("Firstname").ToString();
        MiddleName = profile.GetPropertyValue("Middlename").ToString();
        LastName = profile.GetPropertyValue("Lastname").ToString();
        AddressPrimary = profile.GetPropertyValue("AddressPrimary").ToString();
        AddressSecondary = profile.GetPropertyValue("AddressSecondary").ToString();
        Zip = profile.GetPropertyValue("Zip").ToString();
        Country = profile.GetPropertyValue("Country").ToString();
        HomepageUrl = profile.GetPropertyValue("HomepageUrl").ToString();
        HasReceivedWelcomeMail = Boolean.Parse(profile.GetPropertyValue("WelcomeMailSent").ToString());
        if (FirstName.Length > 2) {
            string strFullName = FirstName + " " + MiddleName + " " + LastName;
            Fullname = strFullName.Replace("  "," ");
        }
        else {
            Fullname = Username;
        }
        MemberNo = profile.GetPropertyValue("MemberNo").ToString();
        IsNotMember = Boolean.Parse(profile.GetPropertyValue("NotMember").ToString());
        Email = userRequested.Email;
        Id = _id;
        if (profile.GetPropertyValue("Description").ToString() != "") {
            IsUpdated = true;
        }
        else {
            if (umbraco.library.GetXmlNodeById("1352").Current.SelectSingleNode("node [@nodeName='" + Username + "']/node") == null) {
                IsUpdated = false;
            }
            else {
                IsUpdated = true;
            }
        }
        RandomNumber = ss.NumberStuff.GenerateRandomNumber(0,10000000);
        MemberType = 1;
        if (IsApproved == false && HasReceivedWelcomeMail == false) { // Not yet approved
            MemberType = 1;
        }
        if (IsApproved == false && HasReceivedWelcomeMail == true) { // Deleted
            MemberType = 2;
        }
        if (IsApproved == true && IsNotMember == false) { // Members
            MemberType = 3;
        }
        if (IsApproved == true && IsNotMember == true) { // Administrators
            MemberType = 4;
        }
    }
    private static object objLock = new object();
    public List<MemberInfo> GetAllMembers() {
        return GetAllMembers(false);
    }
    public List<MemberInfo> GetAllMembers(Boolean bIncludeAdministrators) {
        MembershipUserCollection allUsers;
        lock (objLock) {
            allUsers = Membership.GetAllUsers();
        }
        List<MemberInfo> memberInfoList = new List<MemberInfo>();
        foreach (MembershipUser userCurrent in allUsers) {
            MemberInfo mInfo = new MemberInfo(userCurrent.UserName,userCurrent.ProviderUserKey.ToString());
            if (mInfo.Id == "0") {
                continue;
            }
            if (mInfo.IsNotMember == true && bIncludeAdministrators == false) {
                continue;
            }
            memberInfoList.Add(mInfo);
        }
        return memberInfoList;
    }
    public static String GetMemberTypeName(int intMemberType) {
        switch (intMemberType) {
            case 1: {
                return "Endnu ikke godkendt";
            }
            case 2: {
                return "Slettet";
            }
            case 3: {
                return "Medlem";
            }
            case 4: {
                return "Administrator";
            }
            default: {
                return "";
            }
        }
    }
} 
 提前致谢 :) 编辑:添加了MemberInfo.cs的新来源并更新了我收到的错误消息. (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
- asp.net-mvc – 为什么在我的ASP MVC4应用程序中重定向资源
 - asp.net – SQL Server查询从ADO.NET运行速度比SSMS慢
 - asp.net文件上传功能(单文件,多文件,自定义生成缩略图,水印
 - asp.net-mvc – 应用程序服务层作为静态类
 - asp.net – 单个应用程序中的多个母版页
 - asp.net-mvc – webgrid中的Mvc 3 texbox(razor)
 - asp.net – WebFormsMVP的缺点?
 - 实体框架 – WebApi OData:$filter’any’或’all’查询不
 - asp.net – 在asp页面中显示来自其他站点的网页
 - 修改FCKEditor实现将图片、文件等保存到数据库
 
