UWP приложение не может связаться с удаленным экземпляром SQL Server - PullRequest
0 голосов
/ 24 сентября 2019

В настоящее время я внедряю программу UWP для существующей базы данных.Я взял эту статью за основу.https://docs.microsoft.com/en-us/windows/uwp/data-access/sql-server-databases

При запуске я получаю исключение:

System.Data.SqlClient.SqlException "в System.Data.SqlClient.dll

Исключение:
При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не был найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (Поставщик: поставщик TCP, ошибка: 25 - строка подключения недопустима)

Мне это показалось странным, так как приложение WPF с той же строкой подключения работает нормально. Затем я решил установить базу данныхна моем компьютере и экспортировать некоторые данные в локальную базу данных. К моему удивлению, после замены строки подключения с:

Data Source=sqlserver\sqlexpress

на

Data Source=.\sqlexpress

программа UWP прочитала это избаза данных на моем компьютере.

Я также прочитал эту статью, чтобы убедиться, что удаленная база данных настроена правильно. https://www.lansweeper.com/knowledgebase/a-network-related-or-instance-specific-error-occurred/

Как я уже сказал,Программы WPF отлично работают с этой базой данных.Как можно проверить, почему UWP не хочет связываться с базой данных?

, чтобы выяснить, доступен ли в принципе удаленный сервер, я применяю вывод команды TNC:

tnc sqlserver -p 1433 -I detailed


ComputerName            : sqlserver
RemoteAddress           : 192.168.10.11
RemotePort              : 1433
NameResolutionResults   : 192.168.10.11
MatchingIPsecRules      :
NetworkIsolationContext : Private Network
InterfaceAlias          : Ethernet
SourceAddress           : 192.168.10.20
NetRoute (NextHop)      : 0.0.0.0
TcpTestSucceeded        : True

Строка подключения выглядит следующим образом:

private string connectionString = @"Data Source=sqlserver\sqlexpress;Initial Catalog=TestCatalog;User ID=*;Password=*";

Эта же строка подключения используется в VS.VS показывает содержимое таблицы без проблем.Я также могу удалить или добавить новые строки в редакторе VS.

Я говорю об удаленной базе данных.В VS Server Explorer у меня есть Data Connection, где я подключен к удаленной базе данных.Я могу безопасно редактировать данные удаленной базы данных в VS (добавлять, удалять и обновлять).Я вижу строку подключения и первоначально использовал ее в качестве строки подключения в приложении UWP.enter image description here

1 Ответ

0 голосов
/ 24 сентября 2019

Вы уже взглянули на эту ссылку Microsoft здесь .Короче говоря, вы следовали предложению ниже?

Проблемы с подключением к вашей базе данных? В большинстве случаев некоторые аспекты конфигурации SQL Server необходимо изменить.Если вы можете подключиться к базе данных из другого типа настольного приложения, такого как приложение Windows Forms или WPF, убедитесь, что вы включили TCP / IP для SQL Server.Это можно сделать в консоли управления компьютером.

Проверьте, правильно ли вы выполнили остальную часть решения.Возможно, вам придется включить порт TCP от брандмауэра окна.

Перейдите в межсетевой экран -> Входящие правила -> Добавить TCP: 1433 в правило.

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

Вы также можете добавить номер порта и посмотреть, работает ли он для вас.Когда вы добавляете его, сервер sql игнорирует имя экземпляра (поскольку для разных экземпляров требуются разные порты, поэтому он может работать как уникальный идентификатор).

Редактировать: Как создать действительную строку подключения:

Посмотрите на этот ответ здесь: Как получить строку подключения из базы данных

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