Не удается достучаться до базы данных

leopold777

Доброго всем времени суток!Создано приложение WinForms, работает с базой данных mdf. База лежит в каталоге App_Data. Создавалась бд в vs2015. Полная строка подключения выглядит так: Проблема в том, что когда я переношу релиз на другой компьютер, то не получается подключиться к базе данных, получаю ошибку:System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> System.Data.SqlClient.SqlException: Не удается открыть базу данных "DbCostAccounting.mdf", запрашиваемую именем входа. Не удалось выполнить вход.Ошибка входа пользователя "WIN7\LEOpold"На компьютере WIN7 установил SQL Server Express 2012, аутентификация windows. Строка подключения на другом компьютере:data source=(local)\SQLEXPRESS;Initial Catalog=|DataDirectory|\App_Data\DbCostAccounting.mdf;integrated security=TrueКак решить данную проблему? У меня уже голова кипит, не знаю куда копать...
7 ответов

leopold777

выводи в лог или на экран подробнее ошибку или стек ошибок.
The underlying provider failed on Open
первая строка в поиске наверно твоя ошибкаhttps://www.google.ru/search?q=The underlying provider failed on Open&rlz=1C1GIGM_enRU733RU775&oq=The underlying provider failed on Open&aqs=chrome..69i57&sourceid=chrome&ie=UTF-8


leopold777

Доброго всем времени суток!Создано приложение WinForms, работает с базой данных mdf. База лежит в каталоге App_Data. Создавалась бд в vs2015. Полная строка подключения выглядит так: Проблема в том, что когда я переношу релиз на другой компьютер, то не получается подключиться к базе данных, получаю ошибку:System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> System.Data.SqlClient.SqlException: Не удается открыть базу данных "DbCostAccounting.mdf", запрашиваемую именем входа. Не удалось выполнить вход.Ошибка входа пользователя "WIN7\LEOpold"На компьютере WIN7 установил SQL Server Express 2012, аутентификация windows. Строка подключения на другом компьютере:data source=(local)\SQLEXPRESS;Initial Catalog=|DataDirectory|\App_Data\DbCostAccounting.mdf;integrated security=TrueКак решить данную проблему? У меня уже голова кипит, не знаю куда копать...
Сбивчиво как-то."Релиз" - это само прилагалище? к какой базе оно пытается коннектиться?


leopold777

Доброго всем времени суток!Создано приложение WinForms, работает с базой данных mdf. База лежит в каталоге App_Data. Создавалась бд в vs2015. Полная строка подключения выглядит так: Проблема в том, что когда я переношу релиз на другой компьютер, то не получается подключиться к базе данных, получаю ошибку:System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> System.Data.SqlClient.SqlException: Не удается открыть базу данных "DbCostAccounting.mdf", запрашиваемую именем входа. Не удалось выполнить вход.Ошибка входа пользователя "WIN7\LEOpold"На компьютере WIN7 установил SQL Server Express 2012, аутентификация windows. Строка подключения на другом компьютере:data source=(local)\SQLEXPRESS;Initial Catalog=|DataDirectory|\App_Data\DbCostAccounting.mdf;integrated security=TrueКак решить данную проблему? У меня уже голова кипит, не знаю куда копать...
Хм, если установлен инстанс SQL Server Express, то попробуйте просто не как к LocalDB подключаться:
<add <span>name</span><span>="DbEntities"</span> <span>connectionString</span><span>="(local)\SQLEXPRESS;Initial Catalog=DbCostAccounting;Integrated Security=True"</span> ...


leopold777

А вот это на компьютере, куда переносится программа, выполнено?
The first time a user on a computer tries to connect to LocalDB, the automatic instance must be both created and started


leopold777

Всем спасибо за участие!Отдельное спасибо сну веры палны) навел на мысль.Не знаю какие проблемы были с полноценным SQL Server Express, но ларчик просто открывался. Достаточно на компьютере, где будет использоваться программа, установить SqlLocalDB. Но тут видимо еще с версией не надо ошибаться. Мне пришлось устанавливать версию 2014. Версию бд можно узнать с помощью запроса "select @@version".По факту даже строку подключения не пришлось менять, т.е. остается в первоначальном варианте:data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\App_Data\DbCostAccounting.mdf;integrated security=True


leopold777

leopold777,Рекомендую в Экспрессе использовать соединение не с файлом, а с базой.Тогда на клиенте ничего особого ставить надо не будет


leopold777

leopold777, по моему это называется net use .