2017-02-13 13 views
0

私は次のようにWeb APIを持っています。このAPIを呼び出すと、UserManager.CreateAsync行でエラーが発生します。同じコードは、MVC Web APIのデフォルト/登録メソッドから機能します。UserManager.CreateAsyncは機能しませんが、別のコードスニペットから機能します

[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 })); 
    } 

私はまた、APIの監視を使用して、そのコードでは、内部サーバーエラー500が存在することを示しているが、エラーが何であるかを述べるないのですか?

注:私はこのAPI(settestaccounts)をPythonクライアントから呼び出していますが、レジスタAPIもPythonコードから呼び出され、正常に実行されます。

アイデア?

答えて

0

Errorsプロパティを使用してエラーを確認し、修正できます。

関連する問題