Команда, это сводит меня с ума. Я всегда получаю эту ошибку, когда запускаю приложение UWP:
Microsoft.Data.SqlClient.SqlException: 'При установлении соединения с * 1043 возникла ошибка, связанная с сетью или конкретным экземпляром c * Сервер. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Сервер настроен для разрешения удаленных подключений. (поставщик: поставщик общей памяти, ошибка: 40 - не удалось открыть соединение с SQL сервером) '
Внутреннее исключение:
Microsoft.Data.SqlClient. SqlException HResult = 0x80131904 Сообщение = Ошибка, связанная с сетью или конкретным экземпляром c, произошла при установлении соединения с SQL Сервером. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Сервер настроен для разрешения удаленных подключений. (поставщик: поставщик общей памяти, ошибка: 40 - не удалось открыть подключение к SQL серверу) Источник = основной поставщик данных Microsoft SqlClient StackTrace: в Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor (идентификатор DbConnectionPoolIdentity, SqlConnectionString connectionOrections, Sql учетных данных, объект providerInfo, String новый_пароль, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String маркер доступа, DbConnectionPool бассейн, SqlAuthenticationProviderManager sqlAuthProviderManager) в Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection (варианты DbConnectionOptions, DbConnectionPoolKey poolKey, объект poolGroupProviderInfo, пул DbConnectionPool, DbConnection owningConnection, DbConnectionOptions userOptions) в Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (пул DbConnectionPool, DbConnection, владеющий объектом, DbConn ectionOptions варианты, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) в Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject (DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) в Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) в Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, булева allowCreate, булева onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal & соединение) Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource
1 повторных попыток, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal & connection) в Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal (DbConnection outerConnection, DbConnec ionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions)
at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1, повторная попытка, DbConnectionOptions userOptions) в Microsoft.Data.SqlClient.SqlConnection.TryOpen (TaskCompletionSource 1 retry)
at Microsoft.Data.SqlClient.SqlConnection.Open()
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable
1.Enumerator.InitializeReader (DbContext. Microsoft. .SqlServerExecutionStrategy.Execute [TState, TResult] (состояние TState, Fun c3 operation, Func
3 verifySucceeded) в Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable 1.Enumerator.MoveNext()
at System.Collections.Generic.List
1.AddEnumerable (IEnumerable 1 enumerable)
at System.Collections.Generic.List
1.ctor 1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable
1 источник) в UWP_EF_i9.MainPage.Page_Loaded (отправитель объекта, RoutedEventArgs e) в E: \ Users \ Massimo \ OneDrive \ Development \ Source \ UWP EF i9 \ UWP EF i9 \ MainPage.xaml.cs: строка 35
Внутреннее исключение 1: Win32Exception: доступ запрещен
Так как EFCore в UWP не может dbscaffold базу данных, следуя рекомендациям, найденным здесь, я сделал приложение EF.Core WPF, на котором были созданы леса база данных, создающая классы ... Импортировал сгенерированные классы в приложение UWP (переименованное пространство имен, где это применимо).
В приложении UWP я добавил Microsoft.EntityFrameworkCore и Microsoft.EntityFrameworkCore.SQLServer и добавил Enterprise Capability: Enterprise Authentication
Так что все должно быть хорошо ... но .. это не работает. Точно такой же запрос LINQ, который отлично работает в WPF, дает мне ошибку в UWP
Есть идеи? Чего мне не хватает?
--- Редактировать 1
Я даже добавил код с этой страницы:
Использовать серверную базу данных SQL в приложение UWP connectionString = "Источник данных = YourServerName \ SQLEXPRESS; Начальный каталог = NORTHWIND; Интегрированная безопасность = SSPI";
, поэтому в моем случае:
try
{
using (SqlConnection conn = new SqlConnection((App.Current as App).ConnectionString))
{
conn.Open();
if (conn.State == System.Data.ConnectionState.Open)
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "Select * from tAPP";
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
}
}
}
}
}
}
, но соединение .Open () завершается с тем же сообщением