Не удается подключиться к каким-либо экземплярам SQL с последней EntityFramework - PullRequest
1 голос
/ 04 сентября 2011

Я только что обновил свою EntityFramework с EntityFramework.4.1.10331.0 до EntityFramework.4.1.10715.0

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

Соединения по-прежнему работают нормально, если я использую старую версию 4.1.10331.0.

Конкретная ошибка, которую я получаю, приведена ниже, однако примеры, которые яя подключаюсь ко всем экземплярам по умолчанию.

При установлении соединения с SQL Server произошла ошибка сети или конкретного экземпляра.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка при поиске указанного сервера / экземпляра)

Моя строка подключения для проверки подлинности на основе SQL выглядит следующим образом

Сервер = localhost; База данных= dbname; UID = имя пользователя; PWD = пароль;

Кто-нибудь сталкивался с этим или кто-нибудь может предложить возможные причины?

Ответы [ 2 ]

2 голосов
/ 04 сентября 2011

Убедитесь, что в строке подключения указан атрибут provider:

SERVER=localhost;DATABASE=dbname;USER ID=username;
PASSWORD=password;PROVIDER=System.Data.SqlClient;
0 голосов
/ 05 сентября 2011

Мне удалось заставить это работать, но я все еще не совсем уверен, в чем причина этого. Я думаю, что это может быть связано с конфигурацией провайдера, как это было предложено Юком.

Против сборки 4.1.10331.0 я устанавливал строку соединения на DBContext следующим образом, и она работала нормально.

Context.Database.Connection.ConnectionString = "Server=localhost;Database=dbname;UID=username;PWD=password;"

Однако для сборки 4.1.10715.0 это может привести к ошибке: 26 - Ошибка при поиске сервера / Исключение, указанное в экземпляре.

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

public TestContext(string nameOrConnectionString) : base(nameOrConnectionString) {}

...

var context = new TestContext("Server=localhost;Database=dbname;UID=username;PWD=password;")
...