2017-02-13 4 views
0

Ich habe eine Web-API wie folgt. Wenn ich diese API aufruft, wird die UserManager.CreateAsync-Zeile nur fehlerhaft. Derselbe Code funktioniert mit der Standard/register-Methode in der MVC-Web-API.UserManager.CreateAsync funktioniert nicht, funktioniert aber von einem anderen Code-Snippet

[Route("settestaccounts")] 
    public async Task<IHttpActionResult> SetTestAccounts(TestAccounts TestAccount) 
    { 
     if ((TestAccount.AccountCount == 0) || (TestAccount.AccountCount < 0) || (!TestAccount.SecretKey.Equals("test"))) 
     { 
      return BadRequest("Please send valid data"); 
     } 

     db = new Entities(); 
     List<string> outLogins = new List<string>(); 

     do 
     { 
      string testLogin = null; // string.Empty; 
      do 
      { 
       string login = string.Format("user{0}@domain.net", GetRandomNumber(1, 10000)); 
       testLogin = (from p in db.AspNetUsers 
          where p.UserName.Equals(login) 
          select p.Id).FirstOrDefault(); 

       if (string.IsNullOrEmpty(testLogin)) 
       { 
        outLogins.Add(login); 
       } 
      } while (testLogin != null); 
     } while (outLogins.Count < TestAccount.AccountCount); 

     foreach (string email in outLogins) 
     { 
      var newAccounts = new AccountController(); 
      var registerAccount = new Models.RegisterBindingModel() 
      { 
       Email = email, 
       FirstName = "test", 
       LastName = "test", 
       Password = "Wadirere123", 
       ConfirmPassword = "Wadirere123", 
       ZipCode = Convert.ToString(94111), 
       RoleName = "User" 
      }; 

      string confkey = ConfigurationManager.AppSettings["ConfirmEmailValidKey"]; 
      var user = new ApplicationUser() { UserName = registerAccount.Email, Email = registerAccount.Email, FirstName = registerAccount.FirstName, LastName = registerAccount.LastName, ZipCode = registerAccount.ZipCode, RegistrationDateTime = DateTime.UtcNow }; 

      var result = await UserManager.CreateAsync(user, registerAccount.Password); 

      var c = result.Errors; 

      // var role = await newAccounts.UserManager.AddToRoleAsync(user.Id, registerAccount.RoleName); 

      //ApplicationUser user = await newAccounts.UserManager.FindByEmailAsync(email.Trim()); 
      //string code = await newAccounts.UserManager.GenerateEmailConfirmationTokenAsync(user.Id); 
      //IdentityResult result = await newAccounts.UserManager.ConfirmEmailAsync(user.Id, code); 
      //newAccounts.UpdateDatabaseAndSendWelcomeNotification(user.Id, null, confkey, result); 
     } 

     return Ok(Newtonsoft.Json.JsonConvert.SerializeObject(new OutLogins() { Logins = outLogins })); 
    } 

Ich benutze auch API-Überwachung und in diesem Code zeigt es, dass es interne Serverfehler 500 ist, aber nicht angibt, was der Fehler ist?

HINWEIS: Ich rufe diese API (Settestaccounts) von einem Python-Client, aber die Register-API wird auch aus Python-Code aufgerufen und das führt gut aus.

Irgendwelche Ideen?

Antwort

0

Sie können den Fehler mit der Errors-Eigenschaft überprüfen und beheben.

Verwandte Themen