asp.net C 登录后对Membership.GetAllUsers()的例外情况:“项目已添加”
我在SIP站点上运行Membership.GetAllUs
我有两个共享会员提供商的网站.其中一个是ASP Playground站点,另一个是安装了ASP Playground站点集成包的站点.我们称他们为ASPPG网站和SIP网站. 我在SIP站点上运行Membership.GetAllUsers()时有时会出错. 它有时只会发生.我注意到只有在其中一个成员发生某种变化时才会发生这种情况.然后它必须重新创建在调用Membership.GetAllUsers()时存储所有用户的哈希表,这就像这种娱乐在某种程度上出错了. 除了我粘贴在“administratoren”下面的例外,登录的用户名已经改变了一些信息. 通过更新web.config强制网站卸载没有帮助. 导致异常的原因是什么?如何阻止它? 完整的例外是这样的: Server Error in ‘/’ Application. Exception Details: System.ArgumentException: Item has already been added. Key in dictionary: ‘administratoren’ Key being added: ‘administratoren’ Source Error: Linje 116: MembershipUserCollection allUsers; Source File: [WebsiteLocation]App_CodeMemberInfo.cs Line: 118 Stack Trace: (Please not that the line numbers of MemberInfo.cs in this stacktrace can be a bit off. [ArgumentException: Item has already been added. Key in dictionary: ‘administratoren’ Key being added: ‘administratoren’] Version Information: Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3618 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的新来源并更新了我收到的错误消息. (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ADO.NET实用经验 转载
- asp.net-mvc-2 – ASP.NET MVC 2并列为隐藏值?
- VS 2013 RC中缺少ASP.NET Web窗体脚手架功能
- 谈基于.net平台开发中的模式窗体
- asp.net-mvc-3 – 如何避免使用MVC3 FileContentResult重复
- asp.net – 如何在Windows Phone中开发Google地图
- 使用Hangfire+.NET 6实现定时任务管理
- asp.net – HttpWebRequest正在为404抛出异常
- ASP.NET清空缓存时遇到的问题简析
- asp.net-mvc-3 – MVC3 Html.ActionLink Post
- asp.net-identity – UseOAuthBearerTokens vs U
- asp.net – 我可以通过编程方式禁用更新面板吗?
- asp.net-mvc-3 – 在MVC3中使用Html.LabelFor的表
- asp.net-mvc – Visual Studio 2010 Full和ASP.N
- ASP.NET中操作SQL数据库(连接字符串的配置及获取
- asp.net-mvc-4 – 在哪里可以找到WebMatrix.WebD
- asp.net – WebBrowsable vs个性化Web部件
- ASP.NET 5,.NET Core和ASP.NET Core 5有什么区别
- asp.net – 在MVC3或IIS 7.5中禁用x-frame-optio
- asp.net – Jquery Ajax,不在Internet Explorer中
- asp.net C MVC4 C ContextDependentView C
- asp.net-mvc-3 C 如何从ASP.NET MVC#输出中
- asp.net-mvc C 已经使用相同的参数类型定义
- asp.net-mvc C 使用AD的ASP.NET MVC表单Aut
- ASP.Net C AJAX UpdatePanel中的Javascript
- asp.net-mvc C ASP.NET MVC中的WebApi [Fro
- asp.net-core C 如何使用ASP.NET注册OData
- asp.net C 适用于多个用户的EWS通知中心
- asp.net-mvc C 未在ELMAH中记录的错误
- asp.net-mvc C MVC应用程序中的随机数生成