Подтвердить что ты не робот

Я не могу получить локальное соединение Sql Server для работы на компьютере, на котором не установлен SqlServer Express

У меня есть консольное приложение С#, написанное с использованием Visual Studio 2012. В приложении я использую локальное соединение Sql Server localdb с базой данных для хранения информации. Это отлично работает на нескольких компьютерах, все из которых имеют Visual Studio.

Я хотел бы развернуть программу, которая только должна установить Sql Server Express LocalDB, а не более крупный Sql Server Express. Однако мое приложение не работает на целевых компьютерах. Я установил Sql Server Express LocalDB 2014 на целевом компьютере. Я могу, используя командную строку, запускать команды с помощью sqllocaldb, чтобы убедиться, что он установлен и запущен.

C:\Users\someuser\Desktop\Debug>sqllocaldb v
Microsoft SQL Server 2014 (12.0.2000.8)`

Однако, когда я запускаю свое приложение на том же целевом компьютере, я получаю следующую ошибку.

C:\Users\someuser\Desktop\Debug > Testing_Console
11: 21: 07,912 [1] INFO TestingConsole.Program - текущий каталог - C:\Users\someuser\Desktop\Debug
Дополнительные информации: (null)


Необработанное исключение: System.Data.SqlClient.SqlException: при установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (провайдер: Сетевые интерфейсы SQL, ошибка: 50 - Произошла ошибка локальной базы данных. Невозможно создать автоматический экземпляр. См. журнал событий приложения Windows для получения подробных сведений об ошибке.

Ниже приведено начало моего файла app.config, где я определяю строку подключения. Я попытался поместить прямой путь к файлу LM, но это не устранило проблему. Этого следовало ожидать, поскольку программа работает из любой директории на компьютерах с установленной Visual Studio.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <connectionStrings>
    <add name="KomoLM_Console.Properties.Settings.LMConnectionString"
      providerName="System.Data.SqlClient"
      connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\LM.mdf;Integrated Security=True;MultipleActiveResultSets=True"
 />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>

Я не знаю, связана ли проблема с установкой только SQL Server Express LocalDB 2014. Может ли кто-нибудь сказать мне, что моя проблема может быть?

4b9b3361

Ответ 1

Проблема связана с установкой Sql Server Express LocalDB 2014 вместо 2012 года. С этой версией MS изменила требования к строке подключения. Вместо Data Source=(LocalDB)\V11.0 строка подключения Data Source=(LocalDB)\MSSQLLocalDB. После изменения моей строки подключения программа работает правильно на компьютере, на котором установлен только LocalDB 2014. Вот ссылка на статью об этом: https://connect.microsoft.com/SQLServer/feedback/details/845278/sql-server-2014-express-localdb-does-not-create-automatic-instance-v12-0

и

http://msdn.microsoft.com/en-us/library/hh510202(v=sql.120).aspx

Ответ 2

Использование "Data Source = (LocalDB)\MSSQLLocalDB" также не сработало. Мне пришлось получить доступ к databasseusing "Data Source = (LocalDB)\V12.0", и для работы с этим доступом к работе мне нужно было выполнить эту команду сначала "sqllocaldb create" v12.0 ". Подробнее об этой ссылке https://dyball.wordpress.com/2014/04/28/sql-2014-localdb-error-cannot-connect-to-locaidbv12-o/

Ответ 3

Вам нужно убедиться, что вы установили .NET Framework 4.0 и, что не менее важно, обновление .NET Framework 4.0.2 (KB # 2544514).

Как только ваша система обновлена, вы можете загрузить установщик SqlLocalDb из:

http://www.microsoft.com/en-us/download/details.aspx?id=29062

Ответ 4

Строка, имеющая строку подключения (LocalDB)\v11.0, будет работать с localDB ENU\x64\SqlLocalDB.MSI, указанным по этой ссылке Загрузить SqlLocalDB

Я попробовал это в целевой системе, где не установлен Visual Studio. Эта сборка будет соединяться с базой данных только с установленным SqlLocalDB.msi. Нет необходимости устанавливать SqlExpress в целевую систему.