Ошибка локального запуска SQL LocalDb при вызове из Visual Studio 2013, но не SQL Server Management Studio

В MSDN Docs: http://msdn.microsoft.com/en-us/library/hh510202.aspx

LocalDB поддерживает два типа экземпляров: Автоматические экземпляры и Именованные экземпляры.

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

Вот копия соответствующего раздела в приведенной выше ссылке:

Автоматические экземпляры LocalDB являются общедоступными. Они создаются и управляются автоматически для пользователя и могут использоваться любым приложением. Один автоматический экземпляр LocalDB существует для каждой версии LocalDB установленных на компьютере пользователя. Автоматические экземпляры LocalDB обеспечивают бесшовное управление экземплярами. Нет необходимости создавать пример; он просто работает. Это позволяет легко установить приложение и переход на другой компьютер.

Различные версии LocalDB будут иметь разные соглашения об именах экземпляров:

SQL 2012 LocalDB = V11.0
SQL 2014 LocalDB = ProjectsV12
  • Я видел других.

Пока строка подключения подключаемого приложения указывает на правильный экземпляр, все хорошо:

(localdb)\V11.0
(localdb)\ProjectsV12

Если я попытаюсь соединиться с SQL Server Management Studio с экземпляром (localdb)\V11.0 или (localdb)\ProjectsV12, Я МОЖЕТ, "остановленный" сервер "autostarts" .

Если я установил экземпляр SQL Server в VS2013 либо в экземпляр (localdb)\V11.0, либо (localdb)\ProjectsV12, Я НЕ МОЖЕТ, "остановить" сервер "не удался" для запуска. Он пытается начать, но не работает.

Вот сообщение об ошибке, найденное в экземпляре error.log, указывающее, почему запуск экземпляра завершился неудачно.

014-12-19 15:12:14.09 Logon       Error: 17828, Severity: 20, State: 3.
2014-12-19 15:12:14.09 Logon      The prelogin packet used to open the connection is structurally invalid; the connection has been closed. Please contact the vendor of the client library. [CLIENT: <named pipe>]

Возможно, я нашел ключ:

На одной из моих машин, где работает Automatic Instancing, команда sqllocaldb выводит следующие данные:

C:\>sqllocaldb info v11.0
Name:               v11.0
Version:            11.0.3000.0
Shared name:
Owner:              AM\Z617699
Auto-create:        Yes            <-- Yes? - and I have no idea how this is set.
State:              Stopped
Last start time:    12/18/2014 5:18:46 PM
Instance pipe name:

На одной из моих других машин, где Automatic Instancing не работает, команда sqllocaldb выводит следующие данные:

C:\>sqllocaldb info v11.0
Name:               v11.0
Version:            11.0.3000.0
Shared name:
Owner:              AM\Z617699
Auto-create:        No              <-- No? - and I have no idea how this is set.
State:              Stopped
Last start time:    12/18/2014 5:18:46 PM
Instance pipe name:

Я потратил дни, пытаясь найти ответ на этот вопрос. Вот ссылка на сообщение форума MSDN, в котором описываются все неудачные шаги, которые я предпринял для решения этой проблемы: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/83ad45d5-15c3-4463-bc0c-6c4899bf947e/localdb-visual-studio-2013-will-not-automatically-start-the-sql-2014-localdb-projectsv12-instance?forum=sqlexpress

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

Надеюсь, ты просто знаешь, что он отвечает.: -)

Спасибо, Дэйв

Ответ 1

У меня была такая же проблема. Я разрешил его, удалив и заново создав экземпляр из командной строки:

  • Откройте командную строку
  • Удалить сеанс, набрав: sqllocaldb удалить "v11.0"
  • Восстановить экземпляр с помощью: sqllocaldb create "v11.0"

Новый экземпляр позволяет автоматически создавать и решает проблему.

Решение взято из: http://answers.flyppdevportal.com/categories/sqlserver/sqlexpress.aspx?ID=8bcb5f1e-0240-4df3-8a5e-7e3e73e1c45b

Ответ 2

У меня была та же проблема на VS2015 и SQL2016 проблема моя dev станция - ноутбук, исследователь проекта, я думаю, использует tcpip соединение, в то время как SQLeplorer локальный файл или так.

Он работал после того, как я убедился, что SQL использует сетевую карту и что у нее подключен кабель (поэтому SQL может обрабатывать запрос через TCP с использованием этого IP-адреса), который он не мог бы использовать через Wi-Fi (по умолчанию?)

Ответ 3

У меня была та же проблема. Одной из проблем может быть устаревшая версия этого продукта. Попробуйте удалить экземпляры базы данных, которые находятся в следующей папке:

C:\Windows\System32\Config\systemprofile\AppData\Local\Microsoft\Microsoft Локальная БД SQL Server\Экземпляры\VeeamEndPoint

После этого он работает для меня.