Я столкнулся с этой проблемой и прочитал множество ссылок / блогов / и т. Д., В которых предлагаются решения (открытие порта 1433, проверка работоспособности SQLBrowser, использование sqlexpress по умолчанию, а не именование экземпляра и т. Д.). Я жду, пока айтишник углубится в это, так как у меня нет прав на этот сервер, и в то же время я замечаю несколько вещей:
- Visual Studio подключается очень хорошо, и в браузере SQL может извлекать данные из таблиц и т. Д., В то время как мое приложение .NET, использующее Linq To SQL, не может подключиться (ошибка указана в заголовке).
- SSMS на моей локальной машине может подключаться и обновляться, импортировать и т. Д. Просто отлично.
Почему некоторые программы (VS, SSMS) могут подключаться, а приложение .Net - нет? Я даже создал тестовый файл UDL, который показывает хорошее соединение. У меня нет учетных данных на сервере, чтобы что-то сделать, поэтому я просто надеюсь, что есть какой-то другой элемент, который я могу сделать, который поможет.
Я использовал конструктор строки подключения, поэтому я знаю, что это не опечатка, но сейчас моя строка подключения:
Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=PMTools;Data Source=APP1\PMTOOLSET;Initial File Name=""
И ранее я использовал:
Data Source=APP1\PMTOOLSET;Initial Catalog=PMTools;Integrated Security=True
с той же полученной ошибкой 26 - Ошибка при поиске сервера / указан экземпляр.
Я думаю, что для Linq To SQL требуется поставщик данных .NET Framework для SQL Server, а для SSMS и VS этого не требуется, и что именно этот компонент зависает, когда ему удается найти именованный экземпляр SQL. Сервер Экспресс. Это означает, что на самом деле я ничего не могу сделать, не имея доступа администратора к серверу, на котором живет база данных.
Есть ли шанс, что я что-то упустил? Должен ли я повторно сделать это приложение WPF, чтобы вместо этого я использовал Entity Framework (то есть, EF будет лучше подключаться)? Или есть другой каркас (скажем, тот, который использует VS), который я могу использовать для успешного подключения к базе данных? Или я просто подожду, пока айтишник все исправит на стороне сервера?
UPDATE:
Я создал небольшое тестовое приложение с использованием ADO.NET (Entity Framework) и успешно подключился к серверу. , , Я сопоставил ту же таблицу, которая вызывала у меня головную боль в версии LinqToSQL (через ObservableCollection), с сеткой данных, и она успешно заполняется. Таким образом, кажется, что Сервер разрешает класс DbContext, который EF использует (версия 6), просто отлично, но класс поставщика данных LinqToSQL требует чего-то другого. С этим фрагментом информации я могу что-нибудь сделать для себя, кроме как конвертировать в EntityFramework?