Экземпляр SQL Server LocalDB не запускается (автоматически) - PullRequest
0 голосов
/ 24 июня 2018

У меня есть приложение WPF, которое подключается к SQL Server 2014 Express LocalDB (т.е. к локальному файлу базы данных .mdf).

Приложение использует библиотеку Entity Framework Core версии 7.0.0-rc1-final.

Я использую строку подключения:

data source=(LocalDb)\InstanceLocalDB; Initial Catalog = MyAppDB; Integrated Security=True; MultipleActiveResultSets=True; Connection Timeout = 10

Я делаюустановка SQL Server LocalDB во время установки приложения.То же самое относится к созданию и запуску SqlLocalDB Экземпляра, который выполняется с помощью этой команды:

SqlLocalDB.exe create "SqlLocalDBInstance"
SqlLocalDB.exe start "SqlLocalDBInstance"

Приложение успешно работает примерно на 50 компьютерах, но не работает на двух, как указано ниже:

Сначала приложение успешно обменивается данными с базой данных, но через некоторое время, если не выполняется никаких действий, экземпляр автоматически останавливается (примерно через 10 минут), и с тех пор он не может повторно подключиться, что приводит к следующимошибка:

Ваша установка SQL Server либо повреждена, либо подделана (неизвестный идентификатор пакета).

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

SqlLocalDB.exe start "SqlLocalDBInstance"

приложение успешно обменивается данными с БД до следующей остановки экземпляра LocalDB и т. д.

Журналы Windows показывают следующую ошибку:

Вызов API Windows WaitForMultipleObjects возвратил код ошибки: 575.
Сообщение об ошибке системы Windows: {Ошибка приложения} Приложению не удалосьначать правильно (0x% lx).Нажмите кнопку ОК, чтобы закрыть приложение.

Файлы журнала SQL LocalDB предоставили это сообщение с уведомлением:

Экземпляр RANU завершается в ответ на внутреннее время ожидания.Это только информационное сообщение.Никаких действий пользователя не требуется.

Я установил и переустановил заново (как Microsoft SQL Server 2014 Express, так и удалил файлы .mdf и .ldf), и продолжаю получатьта же ошибка.

Я заметил, что на обеих проблемных машинах UAC был отключен;поэтому я попытался воспроизвести проблему на тестовых машинах с выключенным UAC - проблемы не было воспроизведено.

2 проблемных компьютера работают под управлением Windows 10 pro 64bit.

Наконец, после дальнейших исследований я нашел обходной путь, переименовав папку приложения или изменив ее местоположение.

Как я узнал решение?

Я переместил всю папку приложения (со всеми ее двоичными файлами) за пределы каталога "C: \ Program Files (x86)"

в другой каталог внутрипуть «C: \», и ​​проблема исчезла.

Таким же образом я переместил папку приложения обратно в ее исходное местоположение;только теперь я изменил

имя папки приложения, и она снова заработала.

Может быть, проблема как-то связана с разрешениями для каталога.

Тем не менее, я сделал этошаги ниже, но безуспешно:

  1. Снимите флажок «Только для чтения» для атрибута папки.

  2. Включены все разрешения «Безопасность» для папки приложения.

Примечание: я работаю в домене организации со всеми видами пользовательскихполитики ...

Следующим шагом будет использование некоторого служебного инструмента для извлечения всех разрешений папки приложения, а затем попытка отследить корень проблемы.Можете ли вы предложить мне некоторые инструменты для этого?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Наконец я нашел корень проблемы.

Проблема заключалась в режиме совместимости исполняемого файла приложения, для которого было установлено «Запускать эту программу в режиме совместимости для: Windows 8» (на вкладке «Совместимость» в свойствах файла).

Как только я удалил (снял флажок) эту опцию, ошибка исчезла, и проблема была окончательно закрыта для меня.

0 голосов
/ 03 июля 2018

У меня была похожая проблема с разрешениями системных папок. Я использовал AccessEnum из SysInternals для этой задачи.

Смотрите здесь: https://docs.microsoft.com/en-us/sysinternals/downloads/accessenum

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