문제를 설명하기 위해 간단한 프로그램을 만들었습니다. 외부 SQL Server 인스턴스에 연결해야하는 콘솔 응용 프로그램이 있습니다.Sql Connection이 Mono를 사용할 때 연결을 거부합니다.
로컬로이 호스트에 연결할 수 있습니다. 서버가 DNS를 통해 연결된 IP 주소 나 외부 URL로 설정되었는지 여부는 문제가 없습니다.
: 0 ConsoleApplication1.Program.Main (선택 System.String [] 인수) < 0x409a7d50 + 0x00077>에서System.Data.SqlClient.SqlException : 서버가 존재하지 않는 모노를 설치하고
mono ConsoleApplication1.exe
를 사용하여 응용 프로그램을 실행으로 나는 우분투 서버에 응용 프로그램의 컴파일 된 버전 위에 복사 할 때이 오류가 매번되게하고 또는 연결이 거부되었습니다. System.Data.SqlClient.SqlConnection.Open()에서 < 0x409d4e90 + 0x0053f>에서 0 [ERROR] FATAL 미처리 : 0 ConsoleApplication1.Program.Main (선택 System.String [] 인수) < 0x409a7d50 + 0x00077>에서 예외 : System.Data.SqlClient.SqlException : 서버가 없거나 연결이 거부되었습니다. System.Data.SqlClient.SqlConnection.Open()에서 < 0x409d4e90 + 0x0053f>에서 0
SQL Server 인스턴스에 대한 직접 IP와 아래에 설명 된 외부 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 서버 : 윈도우 2012 DC SQL Server 2014 인스턴스가있는 인스턴스
- 모노 환경 : 우분투 16.04 최신 모노 완성
- .NET 버전 실행 : 4.6.2 (도 시도 4.5.2)
업데이트 : 내가 FreeTDS를를 사용하는 것이 내가 연결할 수 있는지 확인할 수 있습니다 우분투 인스턴스에서 SQL Server 인스턴스로 이동하면 문제가 응용 프로그램을 실행하는 것과 격리 된 것처럼 보입니다.
우분투 시스템의 다른 소프트웨어에 연결할 수 있습니까? – Dai
지금까지 필자는 Ubuntu 머신이 telnet으로 호스트와 그 포트를 인식하고 응답을 받았음을 확인했습니다. 무료 tds와 같은 것을 사용하여 TSQL 연결을 설정할 수 있습니다. –
SQLServer 로그에 연결이 표시됩니까? 오류가 있습니까? – SushiHangover