Asp.net 登录后Membership.GetAllUsers()出现异常:";已添加项“已添加”;
我有两个网站在运行,它们共享一个会员提供商。其中一个是ASP游乐场站点,另一个是安装了ASP游乐场站点集成包的站点。让我们称之为ASPPG站点和SIP站点 在SIP站点上运行Membership.GetAllUsers()时,有时会出现错误。 此方法被SIP否决,因此它不是标准的ASP.NET版本 它只是偶尔发生。我注意到,只有当其中一位成员发生某种变化时,才会发生这种情况。然后它必须重新创建所有用户在调用Membership.GetAllUsers()时都存储在其中的哈希表,这就好像这个重新创建过程出了问题 我在下面粘贴的例外情况是“administratoren”是已更改某些信息的登录名的用户名 通过更新web.config来强制网站卸载没有帮助。 重新启动IIS或完全重新启动服务器没有帮助。 异常显示后,每次调用Membership.GetAllUsers()时,它都会继续显示。突然,异常突然消失,再次可以登录并运行Membership.GetAllUsers()而不出现任何异常。 看起来错误就在数据库中,修复错误的方法是加载ASPPG站点的任何页面。然后在SIP站点上修复错误 异常的原因是什么?如何停止它 完全例外的情况是: “/”应用程序中的服务器错误。Asp.net 登录后Membership.GetAllUsers()出现异常:";已添加项“已添加”;,asp.net,asp.net-membership,Asp.net,Asp.net Membership,我有两个网站在运行,它们共享一个会员提供商。其中一个是ASP游乐场站点,另一个是安装了ASP游乐场站点集成包的站点。让我们称之为ASPPG站点和SIP站点 在SIP站点上运行Membership.GetAllUsers()时,有时会出现错误。 此方法被SIP否决,因此它不是标准的ASP.NET版本 它只是偶尔发生。我注意到,只有当其中一位成员发生某种变化时,才会发生这种情况。然后它必须重新创建所有用户在调用Membership.GetAllUsers()时都存储在其中的哈希表,这就好像这个重新创
项目已添加。字典中的键:“administratoren”正在添加的键:“administratoren” 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 异常详细信息:System.ArgumentException:已添加项。字典中的键:“administratoren”正在添加的键:“administratoren” 源错误: Linje 116:会员资格用户集合用户
林杰117:lock(objLock){
Linje 118:allUsers=Membership.GetAllUsers();
林杰119:}
林杰120: 源文件:[WebsiteLocation]\App\u Code\MemberInfo.cs行:118 堆栈跟踪:(请注意,此堆栈跟踪中MemberInfo.cs的行号可能有点偏离 [ArgumentException:已添加项。在字典中键入:正在添加的administratoren键:administratoren]
System.Collections.Hashtable.Insert(对象键、对象值、布尔加法)+7484392
System.Collections.Hashtable.Add(对象键、对象值)+11
System.Web.Security.MembershipUserCollection.Add(MembershipUserUser)+129
H:\My Document\Visual Studio 2008\Projects\forumu\MembershipProviders\ASPPGSqlMembershipProvider.CreateMembershipUserCollectionFromDataView(DataView dv)中的ASPPG.MembershipProviders.ASPPGSqlMembershipProvider.CreateMembershipUserCollectionFromDataView(DataView dv) H:\My Document\Visual Studio 2008\Projects\forumu\MembershipProviders\ASPPGSqlMembershipProvider.GetAllUsers(Int32 pageIndex、Int32 pageSize、Int32和totalRecords)中的ASPPG.MembershipProviders.ASPPGSqlMembershipProvider.GetAllUsers System.Web.Security.Membership.GetAllUsers(Int32 pageIndex、Int32 pageSize、Int32和totalRecords)+65 System.Web.Security.Membership.GetAllUsers()+26 d:\Faelles\SVN exports\DFF umbraco\App\u Code\MemberInfo.cs:71中的MemberInfo.GetAllMembers() d:\Faelles\SVN exports\DFF umbraco\usercontrols\GetMemberTopList.ascx.cs中的usercontrols\u GetMemberTopList.LoadTopMembers():16 usercontrols\u GetMemberTopList.Page\u加载(对象发送方,事件参数e)在d:\Faelles\SVN exports\DFF umbraco\usercontrols\GetMemberTopList.ascx.cs:11 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,对象o,对象t,事件参数e)+14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(对象发送方,EventArgs e)+35 System.Web.UI.Control.OnLoad(EventArgs e)+99 System.Web.UI.Control.LoadRecursive()+50 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Control.LoadRecursive()+141 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+627 版本信息:Microsoft.NET Framework版本:2.0.50727.3603;ASP.NET版本: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 "";
}
}
}
}
公共类成员信息{
公共字符串用户名{get;set;}
公共字符串名{get;set;}
公共字符串MiddleName{get;set;}
公共字符串LastName{get;set;}
公共字符串全名{get;set;}
公共字符串地址主{get;set;}
公共字符串地址辅助{get;set;}
公共字符串Zip{get;set;}
公共字符串国家{get;set;}
公共字符串HomepageUrl{get;set;}
公共字符串Id{get;set;}
公共字符串MemberNo{get;set;}
公共布尔值已批准{get;set;}
公共字符串电子邮件{get;set;}
公共布尔值IsNotMember{get;set;}
公共布尔值已更新{get;set;}
公共布尔值HasReceivedWelcomeMail{get;set;}
公共整数随机数{get;set;}
公共int成员类型{get;set;}
public MemberInfo(){
}
公共成员信息(字符串\用户名,字符串\ id){
用户名=_用户名;
MembershipUserRequested=Membersh
[ArgumentException: Item has already been added. Key in dictionary: 'administratoren' Key being added: 'administratoren']
Line 71: var allUsers = from u in Membership.GetAllUsers().Cast() select u;
Line 71: var allUsers = from u in Membership.GetAllUsers().Cast<MembershipUser>() select u;
Line 108: public static List GetAllMembers(Boolean bIncludeAdministrators)