У меня есть настольное приложение, которое использует пользовательский экземпляр Sql. Это моя строка подключения:
"Data Source=.\SqlExpress;
AttachDbFilename=C:\path\file.mdf;
Integrated Security=True;
User Instance=True;
Connect Timeout=100;"
Мое приложение создает эту БД, загружает в нее загрузку данных из веб-службы и затем выполняет с ней множество действий.
Проблема возникает, когда я пытаюсь повторно открыть соединение. Я получаю SqlException
:
"Невозможно открыть базу данных пользователя по умолчанию. Ошибка входа.
Ошибка входа для пользователя 'myDomain \ myusername'. "
Эта ошибка не имеет смысла в этом контексте - у меня нет базы данных по умолчанию. Я вхожу в экземпляр, созданный только для текущего приложения, работающий отдельно от SqlExpress.
Нет другого способа подключиться к этой БД. Если я запускаю службу SqlExpress и подключаюсь к экземпляру по умолчанию, он не будет виден. Он существует только для этого приложения.
Файл на диске заблокирован службой экземпляра SqlExpress, работающей под приложением. если я остановлю приложение и перезапущу его, соединение будет работать в первый раз, но при повторном открытии произойдет сбой. Если я просто остановлю приложение, я смогу удалить файлы .mdf и начать заново, но оно все равно будет зависать при повторном открытии соединения.
Когда мое приложение запустило экземпляр, работающий под моим именем, мой текущий пользователь должен иметь доступ ко всем БД в экземпляре.
Этого не происходит с другими пользователями того же кода, что говорит о том, что это проблема конфигурации SQL.
Кто-нибудь знает, что это вызывает и как обойти это?