우리는 여러 타사 시스템과 통합되는 Windows Azure 응용 프로그램 (Lokad.CQRS 아키텍처)을 보유하고 있습니다. 이러한 통합 중 하나가 mySQL에서 이루어집니다. 모든 것이 잘되었지만 요즘에는 Windows Azure 응용 프로그램이 연결할 수없는 하나의 mySQL 데이터베이스가있어 시간 초과가 발생했습니다.Windows Azure에서 mySQL 연결 시간 초과
System.TimeoutException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond --->
System.IO.IOException: Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. --->
System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at MyNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count)
--- End of inner exception stack trace ---
at MyNetworkStream.HandleOrRethrowException(Exception e)
at MyNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at MySql.Data.MySqlClient.TimedStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
at MySql.Data.MySqlClient.MySqlStream.ReadFully(Stream stream, Byte[] buffer, Int32 offset, Int32 count)
at MySql.Data.MySqlClient.MySqlStream.LoadPacket()
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.Open()
at MySql.Data.MySqlClient.Driver.Open()
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
at MySql.Data.MySqlClient.MySqlConnection.Open()
중요 하이라이트 :
여기에 관련 스택 추적의
- 대상 데이터베이스 (MySQL의 워크 벤치를 통해 연결하는 동안 확인하는 데 사용되는 포트 포워딩) 윈도우 Azure에서 액세스 할 수 있습니다;
- 대상 DB와의 통합은 Local Azure Dev Fabric에서 올바르게 작동합니다.
- Windows Azure에 대한 문제는 부스 풀 및 풀링되지 않은 연결에 대해 발생합니다.
- TCP/IP, 일반 포트, SSL 없음; 이 작업
- 연결 제한 시간은 충분히 큰 - 오초과 지속적으로 실패 (그러나 항상 멀지 않은 거리에 NE DC에서 위치가 아닌 푸른 기계에서 성공)
우리는 오라클, MS SQL, MySQL은이 다양한 설치 및 구성 (Linux/Windows 호스팅 데이터베이스 서버)에서 Windows Azure를 통해 Lokad.CQRS에서 작동하는 PostgreSQL 연결을 지원합니다. 그러나이 특정한 mySQL 경우는 완전히 혼란 스러울뿐입니다.
무엇이 문제의 원인 일 것이라고 추측합니까?
당신은 당신이 푸른 이야기 할 수 있도록 포트 포워딩을 사용했다. 역할에서 직접 연결을 시도 했습니까? 아마 RDP를 사용하고 검증할까요? –
포트 포워딩 (TCP 터널)은 자체 Lokad.CQRS 서버에 의해 유지 관리되었습니다. 따라서 터널에 액세스 할 수 있으면 서버가 확실히 액세스 할 수 있습니다. 문제는 아마도 Azure Fabric이이 연결에 상당한 대기 시간을 추가하여 서버 측 시간 초과를 발생시킨 것입니다. 자세한 내용은 내 대답을 참조하십시오. –