У меня есть приложение 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: \», и проблема исчезла.
Таким же образом я переместил папку приложения обратно в ее исходное местоположение;только теперь я изменил
имя папки приложения, и она снова заработала.
Может быть, проблема как-то связана с разрешениями для каталога.
Тем не менее, я сделал этошаги ниже, но безуспешно:
Снимите флажок «Только для чтения» для атрибута папки.
Включены все разрешения «Безопасность» для папки приложения.
Примечание: я работаю в домене организации со всеми видами пользовательскихполитики ...
Следующим шагом будет использование некоторого служебного инструмента для извлечения всех разрешений папки приложения, а затем попытка отследить корень проблемы.Можете ли вы предложить мне некоторые инструменты для этого?