Я использую студию управления SQL 2008, работающую на машине Amazon EC2. Я не могу подключиться к базе данных в моем приложении asp.net. Экземпляр EC2 настроен на прием подключений через порт SQL. Я также могу удаленно управлять машиной, а также просматривать веб-сайты, размещенные на сервере. Ниже приводится часть строки подключения, относящейся к этому экземпляру. Когда программа запускается и вызывается эта строка подключения, она возвращает ошибку TCP 0 - нет ответа. это просто время ожидания.
<add name="ProjectServer" connectionString="Data Source=*IP ADDRESS HERE*,1433;Initial Catalog=*Catalog Name*;User ID=IP-0A6ED514\Administrator;"/>
Я удалил IP-адрес и имя каталога для примера, но уверен, что они верны.
Единственное, что, как мне кажется, может вызвать ошибку, - это различия в именах между идентификатором пользователя и именем сервера - имя сервера - ip-0A6ED514 \ sharepoint, но имя пользователя - ip-0A6ED514 \ administrator, когда я вхожу в sql server manager на экземпляре EC2. Пароль не используется. Не уверен, нужно ли мне оставлять пустую строку для пароля - также не уверен, имеет ли разница между именем сервера и идентификатором пользователя для входа в систему. Любая помощь приветствуется. Спасибо.
update - когда эта строка подключения используется без порта, я получаю ошибку провайдера tcp 40 - когда порт находится там, я получаю ошибку 0
edit - сервер sql использует проверку подлинности Windows - это имеет значение? Обычно я всегда использую аутентификацию SQL-сервера
При использовании аутентификации Windows удаленный экземпляр EC2 должен аутентифицировать вас на вашем локальном ПК или в домене. Если у вас не настроен какой-то VPN или что-то еще, это не сработает.
Вместо этого переключитесь на использование аутентификации SQL. Вам нужно будет указать идентификатор пользователя и пароль в строке подключения.
Убедитесь, что порт 1433 открыт в вашей группе безопасности (желательно только с IP-адреса, с которого ваше веб-приложение обращается к базе данных). Убедитесь, что ваш SQL-сервер настроен на прием сетевых подключений TCP / IP.
В вашем экземпляре EC2 есть общедоступная запись DNS, например ec2-xx-xx-xx-xx.compute-1.amazonaws.com. Используйте это как источник данных. Я не уверен, что вы можете использовать часть '\ sharepoint'. Попробуйте с и без, чтобы увидеть, работает ли это.
Строка подключения должна выглядеть примерно так.
Data Source=ip-0A6ED514\sharepoint;Initial Catalog=myDataBase;Integrated Security=SSPI;
Другой вариант - сделать так, чтобы он выглядел так
Data Source=.\sharepoint;Initial Catalog=myDataBase;Integrated Security=SSPI;
Чтобы использовать IP-адрес, он должен выглядеть так.
Data Source=xxx.xxx.xxx.xxx\sharepoint;Initial Catalog=myDataBase;Integrated Security=SSPI;
Чтобы это работало правильно, вам необходимо, чтобы на сервере был запущен браузер SQL, и на сервере должен быть открыт UDP-порт 1434, а также TCP-порт, на котором работает экземпляр SQL.