Я хочу создать общую базу данных приложения C # Windows формы? - PullRequest
0 голосов
/ 10 ноября 2019

Это приложение, которое я пытаюсь создать, чьи «экземпляры / копии» будут установлены на нескольких ПК клиента и могут получать доступ к одной и той же базе данных с другого ПК того же клиента, на котором постоянно работает SQL-серверчерез одну и ту же сеть (то есть: у них один и тот же маршрутизатор и статический IP-адрес сервера и т. д.).

У меня было два способа сделать это:

  1. Чтобы приложения использовали одну и ту же базу данныхчерез синхронизацию.
  2. Чтобы иметь несколько локальных баз данных, которые затем совместно используют изменения, сервер базы данных.

Следуя 1-му способу,

Я попытался настроить строку подключения, как:

SqlConnection con = new SqlConnection("Data Source =[serverPcIP,Port];Integrated Security=True;Connect Timeout=30");

SqlConnection con = new SqlConnection("SERVER=[serverPcIP]; Port=[portno];Integrated Security=True;Connect Timeout=30");

На сервере - Параметры безопасности: я разрешил " SQL Server и режим аутентификации Windows * "

enter image description here

В Sql Server Configuration Manager> Конфигурация сети SQL Server> Протоколы для SQLEXPRESS => TCP / IP = Включено;под IP-адресами -> IP1 -> TCP-порт = 1433 (порт, который я использовал в строке подключения)

enter image description here

В расширенной настройке брандмауэра:

Включены правила входящих и исходящих сообщений для порта 1433.

Исключение, которое я получаю:

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

enter image description here

Может кто-нибудь подсказать, пожалуйста, какие конфигурации (либов строке подключения или в самом сервере SQL) я пропускаю?

Ответы [ 3 ]

1 голос
/ 10 ноября 2019

на основе вашего снимка экрана, под IP1, IP-адрес активен, но не включен.

также, IP-адрес, который начинается с 169.xxx, обычно означает, что вы настроили эту сетевую карту для использования DHCP,но сетевая карта не смогла получить IP-адрес от сервера DHCP.

Вы не против попробовать использовать статический IP-адрес?

1 голос
/ 10 ноября 2019

В строке подключения отсутствует имя экземпляра, например, источник данных =\ SQLEXPRESS . Если ваша база данных прослушивает порт по умолчанию 1433, вам не нужно передавать его со строкой соединения

Если вы настраиваете сервер SQL, вы можете выбрать между экземпляром SQL Server по умолчанию или именованным экземпляром. Для SQL Express по умолчанию устанавливается именованный экземпляр с именем SQLEXPRESS . Если вы не используете экземпляр по умолчанию и вместо этого устанавливаете именованный экземпляр, вам нужно передать его со строкой подключения.

Экземпляр SQL Server по умолчанию - это просто именованный экземпляр с хорошо известным именем MSSQLSERVER . Таким образом, если вы установили экземпляр базы данных как экземпляр по умолчанию, вы можете подключиться с помощью [, порт] или \ MSSQLSERVER [, порт]

0 голосов
/ 10 ноября 2019

Рассмотрите следующие шаги:

  1. Поскольку вы упоминаете номер порта с помощью диспетчера конфигурации, служба требует перезапуска. перезапустите службу, если не сделали этого.
  2. Кажется вы можете подключиться через SSMS, после перезапуска службы проверьте журнал ошибок SQL через SSMS -> Managemnt -> Журналы SQL Server, вы должнынайдите сообщение следующим образом:
Server is listening on [ 'any' <ipv4> 1433].

Более подробная информация, , выполните следующие действия . Также это ..

...