У меня есть веб-api следующим образом. Когда я называю этот API, это просто ошибки на строке UserManager.CreateAsync. Тот же код работает из метода по умолчанию/register в 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, и это выполняется отлично.
Любые идеи?