Как устранить неполадки: соединение с сервером было успешно установлено, но во время входа в систему произошла ошибка - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь создать приложение в этой демонстрации , но с моей собственной базой данных. Все, что я сейчас пытаюсь сделать, это показать одну таблицу данных. Я использую Visual Studio 2017 Pro и подключаюсь к более старой версии SQL Server 10.50.1600. Я могу подключиться к базе данных с аутентификацией Windows через SSMS, но при попытке подключиться к своему приложению я получаю следующее сообщение об ошибке.

Соединение было успешно установлено с сервером, но затем ошибка произошла во время входа в систему. (провайдер: провайдер TCP, ошибка: 0 - операция успешно завершена)

  • У меня включены следующие возможности: Аутентификация предприятия, Интернет (клиент и сервер), Интернет (клиент), Частные сети (клиент и сервер)
  • Я изменил сервер на другой, более современный сервер БД, и он сработал ... поэтому я думаю, что это может быть настройка на сервере базы данных, которую я должен изменить. Я понятия не имею, как узнать, что изменить, хотя.
  • Я работаю под UWP build 16299 и очень внимательно следил за действиями в демоверсии. Я пересоздал это приложение несколько раз, чтобы не пропустить ни одного шага. В остальном приложение работает нормально.

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

Мне интересно, могут ли люди дать мне советы о том, где я могу посмотреть, почему это происходит. Я не вижу ничего полезного в списке Autos, но я прикреплю его на случай, если что-то выскакивает у других.

Моя строка подключения и класс ниже. Как я уже упоминал, он подключается, но потом что-то жалуется при входе в систему:

Снимок экрана с сообщением об ошибке

enter image description here Строка подключения

public string ConnectionString { get; set; } = "Server=servername; Trusted_Connection=Yes; Integrated Security=True;";

Класс подключения

public ObservableCollection<MyAssignments> GetMyAssignments(string connectionString)
        {
            string GetMyAssignmentsSQLFile = File.ReadAllText(@".\SQL\MyOpenAssignments.sql");

            var myAssignments = new ObservableCollection<MyAssignments>();
            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {

                    conn.Open();
                    if (conn.State == System.Data.ConnectionState.Open)
                    {
                        using (SqlCommand cmd = conn.CreateCommand())
                        {
                            cmd.CommandText = GetMyAssignmentsSQLFile;
                            using (SqlDataReader reader = cmd.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    var myAssignment = new MyAssignments();

                                    myAssignment.CallID = reader.GetString(0);
                                    myAssignment.RecvdDate = reader.GetString(1);
                                    myAssignment.CallStatus = reader.GetString(2);
                                    myAssignment.Priority = reader.GetString(3);
                                    myAssignment.Classification = reader.GetString(4);
                                    myAssignment.CallDesc = reader.GetString(5);
                                    myAssignment.CloseDesc = reader.GetString(6);
                                    myAssignments.Add(myAssignment);
                                }
                            }
                        }
                    }
                }
                return myAssignments;
            }
            catch (Exception eSql)
            {
                Debug.WriteLine("SQL-Exception: " + eSql.Message);
            }
            return null;
        }
    }

Ответы [ 3 ]

0 голосов
/ 16 сентября 2018

Может ли быть, что ваш пользователь имеет доступ к серверу базы данных, но не к базе данных?

0 голосов
/ 17 сентября 2018

Эта проблема, по-видимому, воспроизводима с помощью SQL Server 2008 R2 RTM (10.50.1600) и Windows 10 1709. Я не могу воспроизвести проблему с SQL Server 2008 R2 SP2. Я считаю, что это ошибка Microsoft на сервере и на клиенте.

Смотри также:

Наиболее целесообразным решением, безусловно, было бы обновить ваш SQL Server до SP3 (или SP2).

В качестве альтернативы рассмотрите возможность использования более современного SQL Server для прокси-соединения через связанные серверы. В качестве альтернативы используйте посреднические компоненты UWP или промежуточный уровень WCF / REST для прокси-объектов на стороне клиента.

0 голосов
/ 10 сентября 2018

Попробуйте использовать Аутентификация SQL Server вместо Аутентификация Windows , что означает настройку Интегрированная безопасность = Ложь ; и включение пользователя и пароля среди других параметров в вашей строке подключения .

ConnectionString = "Server = ТСР: devsqlserverXXXX.database.windows.net, 1433; Initial Каталог = XXXX; Постоянная информация о безопасности = Ложь; ID пользователя = USER_ID_XXXX; Пароль = pa $$ wordXXXX; MultipleActiveResultSets = False; Encrypt = True; TrustServerCertificate = False; подключение Timeout = 90; ";

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