У нас есть приложение Windows Azure (архитектура Lokad.CQRS), которое интегрируется с несколькими сторонними системами.Одна из этих интеграций происходит в mySQL.Все шло хорошо, но в последнее время у нас есть одна база данных mySQL, к которой приложение Windows Azure не может подключиться, что приводит к тайм-ауту.
Вот соответствующая трассировка стека:
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()
ВажноОсновные моменты:
- целевая база данных доступна из Windows Azure (используется переадресация портов для проверки при подключении через MySQL Workbench);
- интеграция с целевой БД работает должным образом из Local Azure DevFabric;
- Проблема в Windows Azure возникает для подключений в кабине и в пуле.
- TCP / IP, обычный порт, без SSL;
- Время ожидания подключения для этой операциидостаточно большой - 5 секунд, и он постоянно выходит из строя (но всегда происходит с компьютера, не являющегося Azure, расположенного недалеко от сетевого элемента NE)
У нас есть соединение Oracle, MS SQL, mySQL и PostgreSQL, работающее от Lokad.CQRS поверх Windows Azure в различных настройках и конфигурациях (серверы баз данных под управлением Linux / Windows).Но этот конкретный случай с MySQL просто полностью сбивает меня с толку.
Есть предположения о том, что может быть причиной проблемы?