Хобрук: Ваш путь к мастерству в программировании

ASP.NET MVC 4 EF6 не может подключиться к базе данных SQL Server Express

У меня странная ошибка при переходе на SQL Server Express с LocalDb. Это ошибка:

Для этой операции требуется подключение к базе данных master. Невозможно создать соединение с «главной» базой данных, поскольку исходное соединение с базой данных было открыто, а учетные данные были удалены из строки соединения. Поставьте неоткрытое соединение.

Эта ошибка возникает, когда я пытался CreateDatabaseIfNotExists при инициализации контекста.

Вот моя строка подключения:

<add name="DefaultConnection" 
     connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=AlvinCMS;MultipleActiveResultSets=True;" 
     providerName="System.Data.SqlClient" />

Вот мой контекст:

public class AlvinCMSMigrationDBContext : DbContext
{
    public AlvinCMSMigrationDBContext() : base("DefaultConnection")
    {
        Database.SetInitializer<AlvinCMSMigrationDBContext>(new CreateDatabaseIfNotExists<AlvinCMSMigrationDBContext>());
    }

Я запускаю базу данных на global.asax:

protected void Application_Start()
{ 
    //Check And Init Database
    Alvin_CMS.App_Start.DatabaseConfig.Initialize();

И, наконец, это мой код инициализации:

public static void Initialize()
{
    Alvin_CMS.Models.AlvinCMSMigrationDBContext migrationDB = new Models.AlvinCMSMigrationDBContext();

    try
    {
        if (!migrationDB.Database.Exists())
        {
            migrationDB.Database.Initialize(false); //ERROR HERE!

            AlvinCMSExtension.Models.AccountDBContext accountDB = new AlvinCMSExtension.Models.AccountDBContext();
            accountDB.Database.Initialize(false);

            SetDefaultValue(migrationDB);
        }

        migrationDB.Database.Initialize(false);
    }
    catch (Exception e)
    {
        migrationDB.Database.Delete();
        AlvinCMSExtension.Helper.Log(e);
    }
}

Я не знаю, что не так с моим кодом, потому что все было хорошо, когда я использовал LocalDb, но теперь я не могу даже подключиться к своей базе данных.

Вот мои попытки решить эту проблему:

  1. Ставлю Persist Security Info = True;Trusted_Connection=False; - все равно выдает ту же ошибку.

  2. Я пытался изменить Database.SetInitializer<AlvinCMSMigrationDBContext>(null); Но мне нужно создать базу данных, если она не существует, так что это не исправление для меня.


  • пользователь, которого вы используете для подключения, должен иметь права администратора, попробуйте назначить этому пользователю следующие роли dbcreator и sysadmin и попробуйте 10.09.2016
  • даже с инициализатором null вы можете создать базу данных, если она не существует. Trusted_Connection=False не удаляет учетные данные из вашей строки подключения, однако вы, скорее всего, указали неправильные, попробуйте использовать Trusted_Connection=True, поэтому будет использоваться аутентификация Windows. 10.09.2016

Ответы:


1

Вы можете использовать connection string, как показано ниже.

<add name="DefaultConnection" connectionString="Server=localhost; Database= 
AlvinCMS;Trusted_Connection=True;" providerName="System.Data.SqlClient" />
10.09.2016

2

В моем случае «StoreMan» — это имя базы данных. Замените его своим.

<add name="StoreMan" providerName="System.Data.SqlClient" connectionString="Server=localhost; Database=StoreMan;Trusted_Connection=True;Integrated Security=True;MultipleActiveResultSets=True"/>
10.10.2017
Новые материалы

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

Ториго  — революция в игре Го
Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

Математика и интуиция - Часть 1
У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..

Раскрытие возможностей НЛП: часть речевой маркировки и ее проблемы
В сфере обработки естественного языка (NLP) маркировка частей речи (POS) выступает в качестве фундаментального метода, позволяющего компьютерам понимать и анализировать человеческий язык на..

Под поверхностью: раскрытие деталей системы с помощью инструментов Linux CLI
Чем больше вы изучаете Linux и продвигаетесь вперед, тем больше вам нужно проверять информацию о вашей системе. Эта информация может касаться аппаратного обеспечения, такого как процессор,..