Виртуальная машина Azure mysql перестает работать через некоторое время

У меня есть веб-API ASP.net, развернутый на Azure, и у меня также есть база данных MySql на отдельной виртуальной машине, работающей на Linux. У меня проблема в том, что когда я перезапускаю базу данных и повторно развертываю веб-API из визуальной студии, соединение между веб-API и mySql работает нормально, но примерно через 30 минут я получаю эту ошибку:

«Невозможно подключиться ни к одному из указанных хостов MySQL»

Если я хочу, чтобы он снова работал, мне нужно перезапустить виртуальную машину с базой данных и повторно развернуть веб-API из Visual Studio. Я использую такую ​​строку подключения для подключения в своей веб-конфигурации

<add name="DefaultConnection" connectionString="Server=publicIpAddress;Port=3306;Database=db_12345_db;Uid=user;Pwd=*********;" providerName="MySql.Data.MySqlClient" />

Это соединение работало на сервере, который у нас был до того, как мы перешли на лазурный. Подозреваю, что неправильно настроил лазурь.

Есть идеи, как исправить эту проблему? Спасибо


person beowulf    schedule 27.09.2016    source источник


Ответы (1)


Соединения прерваны

При подключении к базе данных SQL Azure неактивные подключения могут быть прерваны сетевым компонентом (например, брандмауэром) после периода бездействия. В этом контексте существует два типа неактивных соединений:

  • Бездействие на уровне TCP, где соединения могут быть прерваны любым количеством сетевых устройств.
  • Бездействие шлюзом SQL Azure, где могут происходить сообщения поддержки активности TCP (что делает соединение не бездействующим с точки зрения TCP), но не было активного запроса в течение 30 минут. В этом сценарии шлюз определит, что соединение TDS бездействует, через 30 минут и завершит соединение.

https://github.com/sidorares/node-mysql2/issues/316
Надеюсь, это сработает для вас.

person Mitin Dixit    schedule 27.09.2016
comment
OP не использует службу базы данных SQL. Они запускают MySQL на виртуальной машине. - person David Makogon; 28.09.2016
comment
В любом случае, вы не используете подключение в течение ~ 30 минут? - person Mitin Dixit; 28.09.2016
comment
Веб-API обрабатывает запросы из моего приложения для iOS, и бывает, что он простаивает около 30 минут, а иногда и больше. Как я могу настроить его так, чтобы соединение не прерывалось по прошествии определенного времени или не создавалось новое соединение при прерывании? - person beowulf; 28.09.2016
comment
Не будем здесь обсуждать. Не стесняйтесь переместить это в чат. Или задайте другой вопрос. - person David Makogon; 28.09.2016