Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Приложение не "видит" базу. Instance does not exist  [new]
startup
Member

Откуда:
Сообщений: 84
MS SQL Server Express 2012
C:\Users\Administrator>SqlLocalDb info
SQLEXPRESS
v11.0

При попытке приложения приконнектиться к базе получаю ошибку

Server Error in '/' Application.
--------------------------------------------------------------------------------

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. The specified LocalDB instance does not exist.
) 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. The specified LocalDB instance does not exist.
)

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. The specified LocalDB instance does not exist.
)]
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +356
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +117
   System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +267
   System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +318
   System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +132
   System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +246
   System.Data.SqlClient.SqlConnection.Open() +122
   System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure) +41

[EntityException: The underlying provider failed on Open.]
   System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure) +212
   System.Data.EntityClient.EntityConnection.Open() +138
   System.Data.Objects.ObjectContext.EnsureConnection() +84
   System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) +49
   System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +41
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +432
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +70
   Ifs.Cloud.AdminDb.ServiceInstanceDataSource.Select() +501
   Ifs.TouchApps.OnPremise.ServerRole.CustomerPortal.Page_Load(Object sender, EventArgs e) +1784
   System.Web.UI.Control.OnLoad(EventArgs e) +109
   System.Web.UI.Control.LoadRecursive() +68
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1410


При этом, на этом же хосте через SQL Server Management Studio к базе коннекчусь нормально.
Подскажите в каком направлении "копать".

К сообщению приложен файл. Размер - 83Kb
25 окт 17, 18:49    [20900174]     Ответить | Цитировать Сообщить модератору
 Re: Приложение не "видит" базу. Instance does not exist  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1346
startup,

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

а не нашло потому что у вас скорее всего экземпляр localDb именованный.
25 окт 17, 19:14    [20900227]     Ответить | Цитировать Сообщить модератору
 Re: Приложение не "видит" базу. Instance does not exist  [new]
startup
Member

Откуда:
Сообщений: 84
felix_ff
строку подключения покажите какую используете для подключения, оно у вас экземпляр сервера не нашло.
а не нашло потому что у вас скорее всего экземпляр localDb именованный.

Спасибо за ответ.
Строка соединения
 <connectionStrings>
 <add name="cloudadminEntities" connectionString="metadata=res://*/CloudAdmin.csdl|res://*/CloudAdmin.ssdl|res://*/CloudAdmin.msl;provider=System.Data.SqlClient;provider connection string="Data Source=(localdb)\SQLEXPRESS;Integrated Security=True;Initial Catalog=cloudadmin;"" providerName="System.Data.EntityClient" />
 </connectionStrings>
26 окт 17, 00:24    [20900685]     Ответить | Цитировать Сообщить модератору
 Re: Приложение не "видит" базу. Instance does not exist  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31328
startup
Integrated Security=True
Приложение запускается под тем же виндовым аккаунтом, что и SSMS? То есть аккаунт, под которым запущен сервис IIS - это ваш личный аккаунт?
26 окт 17, 09:02    [20900912]     Ответить | Цитировать Сообщить модератору
 Re: Приложение не "видит" базу. Instance does not exist  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3667
https://stackoverflow.com/questions/26248293/sql-network-interfaces-error-50-local-database-runtime-error-occurred-canno
26 окт 17, 10:04    [20901060]     Ответить | Цитировать Сообщить модератору
 Re: Приложение не "видит" базу. Instance does not exist  [new]
startup
Member

Откуда:
Сообщений: 84
alexeyvg
Приложение запускается под тем же виндовым аккаунтом, что и SSMS? То есть аккаунт, под которым запущен сервис IIS - это ваш личный аккаунт?

К веб серверу IIS привязано 4 службы
Если я правильно понял нас интресует 2 службы:
Служба веб-публикаций (W3SVC)
Служба поддержки узла приложений (APPHOSTSVC)
У обеих этих служб вход от имени "локальная система".
Приложение запускаетcя под пользователем Administrator(в группе Администраторы)
Ролг Хупин
https://stackoverflow.com/questions/26248293/sql-network-interfaces-error-50-local-database-runtime-error-occurred-canno

Если я изменяю в строке соединения Data Source=(localdb)\SQLEXPRESS на Data Source=(localdb)\mssqllocaldb
то получаю ту же error: 50
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. The specified LocalDB instance does not exist.

Если я в строке соединения пишу несуществующий инстанс localdb11 (Data Source=(localdb11)\mssqllocaldb)
то получаю
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

Ещё вопрос, а почему мне в ошибке пишет "The specified LocalDB instance does not exist", хотя в строке соединения прописано (localdb)\SQLEXPRESS
26 окт 17, 18:21    [20903770]     Ответить | Цитировать Сообщить модератору
 Re: Приложение не "видит" базу. Instance does not exist  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1346
startup,

так, давайте по порядку

открываем на сервере cmd, показываем что выводит
C:\Program Files\Microsoft SQL SErver\110\Tools\Binn\SqlLocalDB.exe v

C:\Program Files\Microsoft SQL SErver\110\Tools\Binn\SqlLocalDB.exe i
далее если выводит только одну строку то
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe info <InstanceName>


Далее все зависит от того именованный у Вас экземпляр или общий, если общий его имя будет MSSQLLocalDB
и вы можете подключаться к нему по строке соединения "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true; AttachDbFileName=<путь к файлу .mdf>"

Если именованный то вам необходимо взять строку именованного канала которую выводит SqlLocalDb.exe info
она будет что то вида: np:\\.\pipe\LOCALDB#XXXXXX\tsql\query

еще один нюанс, если пытаетесь подключиться под учетной записью не владельца инстанса, вам необходимо будет дать права этой учетке, т.е. подключиться к экземпляру через ssms создать логин и дать права подключения.
26 окт 17, 21:27    [20904223]     Ответить | Цитировать Сообщить модератору
 Re: Приложение не "видит" базу. Instance does not exist  [new]
startup
Member

Откуда:
Сообщений: 84
felix_ff
Если именованный то вам необходимо взять строку именованного канала которую выводит SqlLocalDb.exe info
она будет что то вида: np:\\.\pipe\LOCALDB#XXXXXX\tsql\query

C:\Program Files\Microsoft SQL Server\110\Tools\Binn>SqlLocalDB.exe info SQLEXPRESS
Name: SQLEXPRESS
Version: 11.0.5058.0
Shared name:
Owner: WIN-QCIGK4DB3LN\Administrator
Auto-create: No
State: Running
Last start time: 25.10.2017 16:40:57
Instance pipe name: np:\\.\pipe\LOCALDB#EC46D329\tsql\query

Заменил Data Source=(localdb)\SQLEXPRESS на Data Source=np:\\.\pipe\LOCALDB#EC46D329\tsql\query
И получилось приконнетиься к базе!
Большое спасибо!
27 окт 17, 17:28    [20907514]     Ответить | Цитировать Сообщить модератору
 Re: Приложение не "видит" базу. Instance does not exist  [new]
startup
Member

Откуда:
Сообщений: 84
Сделал restart инстанса. В результате вместо
np:\\.\pipe\LOCALDB#EC46D329\tsql\query
получил
np:\\.\pipe\LOCALDB#408285F5\tsql\query
Пришлось в web.config менять строку соединения.
Теперь каждый раз после restart инстанса придётся менять строку соединения?
2 ноя 17, 16:40    [20922526]     Ответить | Цитировать Сообщить модератору
 Re: Приложение не "видит" базу. Instance does not exist  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1346
startup,

перенесите базу в общий экземпляр и подключайтесь по MSSQLLocalDB
2 ноя 17, 17:08    [20922590]     Ответить | Цитировать Сообщить модератору
 Re: Приложение не "видит" базу. Instance does not exist  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1346
а хотя можете просто свой инстанс расшарить, так тоже можно. тогда канал должен стать статическим
2 ноя 17, 17:14    [20922603]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить