Как настроить строку подключения к MSSQL?

249
17 ноября 2017, 05:26

Проект использует EntityFramework Code First.

Строка подключения задана в отдельном классе:

public class ConnectionStrings
{
   public static readonly string connstr = @"Server=PC\SQLEXPRESS;Database=ApacheServerLog;Trusted_Connection=True;MultipleActiveResultSets=true";
}

Конструктор контекста :

public LogDataContext(string constr)
        : base(constr)
{
    Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<LogDataContext>());
}

Создание экземпляра контекста:

public LogDataRepository()
{
    DB = new LogDataContext(ConnectionStrings.ConnectionStrings.connstr);
}

У меня на машине все работает.
У работодателя (это тестовое задание) - исключение Error 26: error locating server/instance specified

Вопрос: Можно ли как-то настроить универсальную строку подключения, которая будет работать на всех машинах с MSSQL?

Answer 1

Можно ли как-то настроить универсальную строку подключения, которая будет работать на всех машинах с MSSQL

Нельзя. MSSQL умеет устанавливатся в систему под разными именами экземпляров (instance), и настройки имени экземпляра по умолчанию у Express Edition (имя-машины\SQLEXPRESS, или .\SQLEXPRESS) отличаются от настройки имени экземлпяра у не-Express Edition (безымянный экземпляр, имя-машины, .).

Можно попробовать построить connection string поиском локальных экземпляров

  • Подключить Microsoft.SqlServer.Smo.dll
  • Вызвать SmoApplication.EnumAvailableSqlServers
  • Попытаться подключится к каждому из них с использованием Trusted_Connection=True.

Но этот способ сработает только в случае, если у текущего пользователя будет доступ у установленному экземпляру, так что результат не гарантирован.

READ ALSO
передать модель через ajax в asp.net mvc

передать модель через ajax в asp.net mvc

У меня есть 2 модели, назовем их условно Model1 и Model2Model1:

336
Рефакторинг похожих ajax-запросов

Рефакторинг похожих ajax-запросов

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

271
Как запустить React на сервере

Как запустить React на сервере

У меня есть фронтенд, часть на реакт и бэкэнд на nodeЯ через ssh загрузил все на сервер

333