#c# #uwp #entity-framework-core #localdb
Вопрос:
У меня есть приложение UWP с уровнем данных EFCore 2.1, которое должно получать данные из локальной базы данных, но я получаю следующую ошибку:
Microsoft.Data.SqlClient.SQLException (0x80131904): При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не был найден или был недоступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен на разрешение удаленных подключений. (поставщик: Сетевые интерфейсы SQL, ошибка: произошла ошибка времени выполнения локальной базы данных 50. Неожиданная ошибка произошла внутри вызова метода API экземпляра LocalDB. Подробные сведения об ошибках см. в журнале событий приложений Windows.
В журнале событий приложений Windows у меня есть следующие ошибки:
- Вызов API Windows CreateMutexW вернул код ошибки: 5. Сообщение об ошибке системы Windows: Доступ запрещен.
- При попытке доступа к конфигурации реестра экземпляра LocalDB произошла непредвиденная ошибка. Подробные сведения об ошибках см. в журнале событий приложений Windows.
- Формат вызова API Windows. Messagew вернул код ошибки: 1815. Системное сообщение об ошибке Windows: Указанный идентификатор языка ресурсов не может быть найден в файле изображения.
Примечания:
- Я могу подключиться к локальной базе данных с помощью SSMS.
- У меня есть API в .Net Core 3.1, который использует один и тот же слой данных и строку подключения в одной и той же локальной базе данных, но в этом проекте нет ошибок, и данные получены правильно.
- Приложение UWP может правильно подключаться к базе данных SQL Server или SQL Express с тем же уровнем данных: изменяется только строка подключения.
Комментарии:
1. Для локальной базы данных требуются именованные каналы. Может быть, просто использовать SQL Express вместо этого?
2. @ErikEJ Я думаю наоборот: похоже, он пытается использовать общую память. Может быть, переключиться на именованные каналы
3. @Charlieface Я новичок в LocalDB, не могли бы вы сообщить мне, как переключиться на именованные каналы ? Тнх
4. Вы добавляете префикс с
np
, чтобы принудительно использовать именованные каналы, аlpc
для общей памятиserver=np:yourServerNameOrAddress
вам также необходимо включить Именованные каналы в Диспетчере конфигурации docs.microsoft.com/en-us/sql/database-engine/configure-windows/…