ASP.net UserCreate向导中的奇怪错误

时间:2009-11-04 07:35:07

标签: asp.net-membership

我有一个奇怪的错误。在用户创建期间,如果系统中已存在用户名,我会对其进行一些检查,并允许用户在尚未激活现有帐户的情况下再次注册。我收到的错误是:

[NullReferenceException: Object reference not set to an instance of an object.]
LAUNCHOnline.en.ca.CreateUser.wCreateUser_Error(Object sender, CreateUserErrorEventArgs e) in C:\Projects\LAUNCH\LAUNCH-Online\LAUNCHOnline\en\ca\CreateUser.aspx.cs:194

我的代码:( var vUser是导致错误的行)

protected void wCreateUser_Error(object sender, CreateUserErrorEventArgs e)
    {
        // TODO: more verbose error messages.
        if (e.CreateUserError == MembershipCreateStatus.DuplicateEmail)
        {
            // WORK IN PROGRESS
            // If the user is not activated yet, update the existing user info with the new info
            // as it might be a feedback user. Else, give an error.
            // Get the user from the database.
            var vUser = (from u in this.dcLAUNCHOnline.aspnet_Users
                         where u.UserName.Equals(this.wCreateUser.UserName)
                         select u).Single();

注意:用户的用户名只是他们的电子邮件。我手动检查,并且收到此错误的人确实已在数据库中拥有一个帐户,但仍然会收到此错误。用户名的情况并没有引起问题,因为我尝试了不同的临时帐户案例并且工作正常。

感谢任何帮助 - 谢谢!

1 个答案:

答案 0 :(得分:1)

如果从此行抛出NullReferenceException异常:

var vUser = (from u in this.dcLAUNCHOnline.aspnet_Users
                         where u.UserName.Equals(this.wCreateUser.UserName)
                         select u).Single();

问题必须是以下情况之一(或缺少它):
dcLAUNCHOnline.aspnet_Users
this.wCreateUser
或者没有结果 from u in this.dcLAUNCHOnline.aspnet_Users where u.UserName.Equals(this.wCreateUser.UserName)

我建议您通过调试来找出哪一个或多个是null