ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ : Даже если раньше об этой ошибке говорили во многих темах, я не нашел ответа на свой вопрос; Пожалуйста, не стесняйтесь ответить на него, прежде чем пометить как дубликат, потому что это не дубликат: -)
<ч />
Я использую Identity Framework в первом проекте базы данных ASP.NET MVC5.
В последнее время я внес много изменений в свое решение, включая добавление столбца в таблицу AspNetUsers
. Я уже делал это дюжину раз, все отлично работает.
Когда я тестирую свое решение со всеми новыми изменениями в localhost, все отлично работает, включая логин .
Затем я опубликовал свой код и изменения БД в своей среде PreProd, размещенной в Azure (для записи)
Новые изменения в порядке, однако, когда я пытаюсь войти в свой проект, он терпит неудачу, и в моих журналах появляется следующая ошибка:
Формат строки инициализации не соответствует спецификации, начиная с индекса 0.
Проблема возникает в Login
метод HttpPost, только при вызове UserManager
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
try
{
//Just to proove I can access to my DB
var businessLayer = new businessLayer();
var dataFromDB = businessLayer.GetDataFromMyDB();
logger.Info(dataFromDB ); //dataFromDB is the expected value from my DB
logger.Info("Will call UserManager");
var user = await UserManager.FindByEmailAsync(model.Email.Trim()); // <- Fails here in PreProd only
logger.Info(I never go here (in PreProd only)");
}
catch(Exception ex)
{
//Fails here in PreProd only with above error message
logger.Error(ex, ex.Message);
}
}
В localhost все нормально, в preprod (размещенном в Azure) происходит сбой при вызове UserManager.FindByEmailAsync
Вот моя ConnectionString в localhost
<add name="MyEntities" connectionString="metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MY-PC\SQLEXPRESS;initial catalog=MyDBName3;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Вот моя ConnectionString для Azure Preprod
<add name="MyEntities" connectionString="metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;provider=System.Data.SqlClient;provider connection string="Server=tcp:xxxazure.database.windows.net,1433;Initial Catalog=MyDbName;Persist Security Info=False;User ID=MyUserID;Password=MyPassword;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;App=EntityFramework"" providerName="System.Data.EntityClient" />
Когда я использую строку подключения PreProd из VisualStudio в режиме Release, проблем нет вообще, и я могу войти (?!?!)
Так что, похоже, проблема в самой среде PreProd, не так ли?
Что я пробовал до сих пор:
- Скопируйте / вставьте строку подключения в web.config прямо в мой FTP
- Попробуйте изменить
"
на '
- Попробуйте удалить все в строке подключения, кроме обязательных элементов (идентификатор пользователя, пароль ..)
- Google моя проблема , нажмите на каждую ссылку на первой странице, но все еще есть моя проблема
- Произвольно изменить
Integrated Security
и другое значение bool в строке подключения
- Повернись 7 раз на моем стуле, шепча заклинание вуду
Может кто-нибудь сказать мне:
- Почему происходит сбой только в PreProd при размещении в Azure
- Как я могу это исправить?
Большое спасибо