Ошибка: не удалось создать экземпляр пользователя SQL Server
Я пытаюсь подключиться к MDF. Я даже дошел до полной переустановки sql-сервера полностью (теперь это единственный вкус SQL, установленный на моем ящике, где раньше у меня было 05 dev и express). Я проверил, что все пути правильные, и до сих пор мой google-fu не помог.
Полное сообщение об ошибке:
Не удалось создать экземпляр пользователя 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.
Ответы
Ответ 1
ОК, теперь он работает! предположим, что это сложная проблема... шаги, которые я предпринял для ее решения, таковы:
- Изменено следующее свойство в строке подключения (обратите внимание на тонкую разницу):
AttachDbFilename=|DataDirectory|CustomerDb.mdf;
- Удалено содержимое следующего каталога:
c:\Users\<user name>\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS
. Я думал, что искал это раньше, но я действительно посмотрел папку Microsoft Sql Server
. Опять же, тонкая разница.
Как только я сделал эти две вещи, соединение начало работать: -D
Ответ 2
У меня возникла такая же ошибка, когда я переместил код с одной машины на другую. Я использую VS2010, и SQLEXPRESS 2008 вместе с ним.
Trick, удалив все содержимое из следующего файла: "C:\Users\UserName\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS" работал у меня.
Ответ 3
Даже несмотря на вышеупомянутые ответы, решена проблема многих людей, я все еще нахожу, что они не соответствуют сути проблемы. Ближе всего это ответ @sohaiby выше. Но это неправильно ссылается на использование Management Studio.
Сообщение об ошибке в верхней части этого раздела очень четко говорит о том, что проблема заключается в создании экземпляра пользователя. Какой экземпляр и как он используется, описывается здесь в каждой детали:
https://msdn.microsoft.com/en-us/library/ms254504(v=vs.110).aspx
Лично я столкнулся с этой проблемой при переключении соединения БД из режима проверки подлинности Windows на аутентификацию SQL Server. Я решил это, просто изменив часть строки подключения на: "Пользовательский экземпляр = false;" вместо "Пользовательский экземпляр = true", который отлично работал с проверкой подлинности Windows.
После того, как я перешел на "User Instance = false"; мое соединение отлично работало без каких-либо дополнительных манипуляций. Я не могу настаивать на том, что он будет работать или будет подходящим во всех сценариях. Тем не менее, я обязательно рекомендую попробовать его перед другими критическими методами, описанными выше, например, удалением рабочих каталогов SQL Server.
Ответ 4
В дополнение к другим решениям здесь это также может быть полезно.
Убедитесь, что пул приложений запущен как служба сети, а не ApplicationPoolIdentity.
Это решение было найдено здесь: http://blogs.msdn.com/b/webdevelopertips/archive/2010/05/06/tip-106-did-you-know-how-to-create-the-aspnetdb-mdf-file.aspx
Ответ 5
Как уже отмечалось другими, удаление содержимого каталога: c:\Users\\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS разрешили его для меня. Заметка, которая может помочь другим, в Windows 7, просматривать каталог c:\users\username из браузера документа, не отображает папку AppData, которая отбросила меня на некоторое время (поскольку я думал, что у меня не было каталога AppData), пока Я обнаружил, что он действительно существует (но не отображается в браузере документов в Windows 7), вам просто нужно ввести полное имя пути, чтобы добраться до него.
Ответ 6
Я начал получать эту ошибку сегодня утром в тестовой среде развертывания. Я использовал SQL Server Express 2008, и ошибка, которую я получал, была
"Не удалось создать экземпляр пользователя SQL Server из-за сбоя в запуске процесса для экземпляра пользователя. Соединение будет закрыто."
Не уверенный в том, что вызвало это, я следовал инструкциям в этом посте и в другом сообщении о
удалив каталог "C:\Users\UserName\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS", но безрезультатно.
Какая уловка для меня заключалась в изменении строки подключения из
"Источник данных =.\SQLExpress; Начальный каталог = DBFilePath; Интегрированная безопасность = SSPI; MultipleActiveResultSets = true"
to
"Источник данных =.\SQLExpress; Начальный каталог = DBName; Интегрированная безопасность = SSPI; MultipleActiveResultSets = true"
Ответ 7
Я фазу эту проблему с моим файлом mdf в приложении Windows Form, и я просто перезагружаю компьютер, и моя проблема решена.
Ответ 8
Чтобы исправить это, откройте SQL Server Management Studio Express.
В редакторе запросов введите этот текст:
sp_configure 'user instances enabled', 1;
RECONFIGURE
Запустите его.
Затем перезапустите базу данных SQL Server.
Ответ 9
Вы пытались подключиться к экземпляру SQL Server с помощью SQL Management Studio?
Если это также не позволяет вам подключиться, возможно, это связано с тем, что служба SQL не запускается правильно.
Убедитесь, что служба запущена, проверив службы на панели управления.