Ошибка: не удалось создать пользовательский экземпляр SQL Server - PullRequest
28 голосов
/ 11 ноября 2008

Я пытаюсь подключиться к MDF. Я даже дошел до того, что переустановил sql server express полностью (теперь это единственный вариант SQL, установленный на моем компьютере, где ранее у меня было 05 dev и express). Я убедился, что все пути верны, и пока мой гугл-фу не помог.

Полное сообщение об исключении:

Не удалось создать пользовательский экземпляр SQL Server из-за сбоя в запуск процесса для пользовательского экземпляра. Соединение будет закрыты.

Строка подключения:

<add name= "CustomerEntities"
     connectionString="metadata=res://*/Data.CustomerModel.csdl|res://*/Data.CustomerModel.ssdl|res://*/Data.CustomerModel.msl;
     provider=System.Data.SqlClient;
     provider connection string='Data Source=.\SQLEXPRESS;
     AttachDbFilename=\App_Data\CustomerDb.mdf;
     Integrated Security=True;
     User Instance=True'"
     providerName="System.Data.EntityClient" />

Дополнительная информация:

Некоторые из ссылок на эту ошибку, которые я нашел в Интернете, не относятся ко мне. Например, я видел, где эта ошибка возникает при попытке запустить пользовательский экземпляр через удаленный рабочий стол (я делаю это локально). В то время как другой предполагает, что это связано с оставшимися файлами из старой экспресс-установки ... Я посмотрел в предписанных местах и ​​не нашел эти артефакты. Я также попытался запустить sp_configure 'user instances enabled', '1', но он сказал, что он уже был установлен на 1.

Ответы [ 9 ]

69 голосов
/ 11 ноября 2008

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

  1. Изменено следующее свойство в строке подключения (обратите внимание на небольшую разницу): AttachDbFilename=|DataDirectory|CustomerDb.mdf;
  2. Удалил содержимое следующего каталога: c:\Users\<user name>\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS. Я думал, что искал это раньше, но на самом деле я смотрел в папку Microsoft Sql Server. Опять тонкая разница.

Как только я сделал эти две вещи, соединение начало работать: -D

5 голосов
/ 24 декабря 2015

Даже несмотря на то, что вышеупомянутые ответы решили проблему многих людей, я все еще нахожу, что они не соответствуют сути проблемы. Наиболее близким к этому является ответ @sohaiby выше. Но это неправильно относится к использованию Management Studio.

Сообщение об ошибке в верхней части этой темы очень ясно говорит о том, что проблема заключается в создании пользовательского экземпляра. Что такое экземпляр и как он используется, подробно описано здесь: https://msdn.microsoft.com/en-us/library/ms254504(v=vs.110).aspx

Лично я столкнулся с этой проблемой при переключении соединения с БД из режима проверки подлинности Windows в режим проверки подлинности SQL Server. Я решил эту проблему, просто изменив часть строки подключения на: "User Instance = false;" вместо "User Instance = true;", что отлично работало с аутентификацией Windows.

После того, как я изменил на «Пользовательский экземпляр = ложь;» мое соединение работало нормально без каких-либо дополнительных манипуляций. Я не могу настаивать на том, что это будет работать или будет подходить во всех сценариях. Однако я определенно рекомендую попробовать его перед другими радикальными методами, описанными выше, такими как удаление рабочих каталогов SQL-сервера.

4 голосов
/ 08 января 2014

Я столкнулся с той же ошибкой, когда переместил код с одной машины на другую. я использую VS2010 и SQLEXPRESS 2008 идет вместе с ним.

Трюк, удалив все содержимое из следующей папки "C: \ Users \ Имя пользователя \ AppData \ Local \ Microsoft \ Microsoft SQL Server Data \ SQLEXPRESS", работал для меня.

0 голосов
/ 17 ноября 2016

Я решаю эту проблему с помощью моего mdf-файла в приложении Windows Form и просто перезагружаю компьютер, и моя проблема решается.

0 голосов
/ 21 июля 2014

Чтобы это исправить, пожалуйста, откройте SQL Server Management Studio Express. В редакторе запросов введите этот текст:

sp_configure 'user instances enabled', 1;
 RECONFIGURE

Запустите его. Затем перезапустите базу данных SQL Server.

0 голосов
/ 13 июня 2013

Я начал получать эту ошибку сегодня утром в тестовой среде развертывания. Я использовал SQL Server Express 2008 и получал ошибку

"Не удалось сгенерировать пользовательский экземпляр SQL Server из-за сбоя при запуске процесса для пользовательского экземпляра. Соединение будет закрыто."

Неуверенный в том, что вызвало это, я следовал инструкциям в этом посте и в другом посте о удаление каталога «C: \ Users \ имя пользователя \ AppData \ Local \ Microsoft \ Microsoft SQL Server Data \ SQLEXPRESS», но безрезультатно.

Что меня обмануло, изменив строку подключения с

"Источник данных =. \ SQLExpress; Начальный каталог = DBFilePath; Интегрированная защита = SSPI; MultipleActiveResultSets = true"

до

"Источник данных =. \ SQLExpress; Начальный каталог = DBName; Интегрированная безопасность = SSPI; MultipleActiveResultSets = true"

0 голосов
/ 01 июня 2012

Как отметили другие, удаление содержимого каталога: c: \ Users \\ AppData \ Local \ Microsoft \ Microsoft SQL Server Data \ SQLEXPRESS решило это за меня. Примечание, которое может помочь другим, в Windows 7, просматривая каталог c: \ users \ username из браузера документов, не показывает папку AppData, которая меня оттолкнула на некоторое время (так как я думал, что у меня нет каталога AppData) до Я обнаружил, что он действительно существует (но не отображается в браузере документов в Windows 7), вам просто нужно ввести полное имя пути, чтобы добраться до него.

0 голосов
/ 22 августа 2011

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

Это решение было найдено здесь: http://blogs.msdn.com/b/webdevelopertips/archive/2010/05/06/tip-106-did-you-know-how-to-create-the-aspnetdb-mdf-file.aspx

0 голосов
/ 11 ноября 2008

Вы пытались подключиться к экземпляру SQL Server с помощью SQL Management Studio?

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

Убедитесь, что служба работает, проверив службы на панели управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...