Я создал простую программу для иллюстрации проблемы. У меня есть консольное приложение, которое должно подключаться к внешнему экземпляру SQL Server.Sql Connection отказывается подключаться при использовании Mono
Локально я могу подключиться к этому хосту просто отлично (нужно ли установить IP-адрес или внешний URL-адрес, с которым сервер связан через DNS). Когда я копирую скомпилированные версии приложения к серверу Ubuntu с установленным Mono и запустить приложение с помощью mono ConsoleApplication1.exe
, я представил с этим каждый раз ошибки:
System.Data.SqlClient.SqlException: Сервер не существует или подключение не был. на System.Data.SqlClient.SqlConnection.Open() < 0x409d4e90 + 0x0053f> в: 0 в ConsoleApplication1.Program.Main (System.String [] арг) < 0x409a7d50 + 0x00077> в: 0 [ERROR] СМЕРТЕЛЬНОЙ необработанное ИСКЛЮЧЕНИЕ: System.Data.SqlClient.SqlException: сервер не существует или соединение отказано. на System.Data.SqlClient.SqlConnection.Open() < 0x409d4e90 + 0x0053f> в: 0 в ConsoleApplication1.Program.Main (System.String [] арг) < 0x409a7d50 + 0x00077> в: 0
Я попытался использовать прямой IP-адрес экземпляра SQL Server, а также внешний URL-адрес (вместо ниже), который, как я знаю, работает локально с помощью этого приложения.
Код, используемый для установки в приложении:
App.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="Test" connectionString="data source=<Host>\<Instance Name>, 1069;database=<Database Name>;user id=<User>;password=<Password>;multipleactiveresultsets=True;"/>
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
</configuration>
C# Код
class Program
{
static void Main(string[] args)
{
using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Test"].ConnectionString))
{
connection.Open();
Console.WriteLine("Connected");
}
}
}
Окружающая среда:
- SQL Server: Windows 2012 DC с экземпляром SQL Server 2014
- Mono Окружающая среда: Ubuntu 16.04 работает Latest Mono-Complete
- .NET Версия: 4.6.2 (также пытался 4.5.2)
Update: Я могу подтвердить, что с помощью FreeTDS я могу подключиться к экземпляру SQL Server из экземпляра Ubuntu, поэтому проблема кажется изолированной для запуска приложения.
Можно ли подключить какое-либо другое программное обеспечение к вашей системе Ubuntu? – Dai
До сих пор я проверил, что машина Ubuntu может telnet этого хоста и этого порта и получить ответ, я попытаюсь использовать что-то вроде бесплатных tds, чтобы увидеть, может установить соединение TSQL. –
. Показывает ли ваш журнал SQLServer соединение? Любая ошибка? – SushiHangover