В 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. Я просто пытаюсь решить эту проблему, поэтому я могу получить изображение "Автоматический экземпляр" для всех наших разработчиков.
Надеюсь, ты просто знаешь, что он отвечает.: -)
Спасибо, Дэйв