Проблема повторного подключения приложения ASP.NET MVC к перемещенной базе данных MySQL.

0

Я поддерживаю старое наследие веб-приложения ASP.NET MVC3, работающего в Azure. Приложение подключается к серверу MySQL on-prem (версия 5.1.44), который скоро умрет от старости... Поэтому dba готовит переход на новый сервер и подготовил тестовый экземпляр базы данных. Таким образом, вы думаете, что только строка подключения должна быть изменена, не так ли?

Ну, похоже, это не так просто. Важно знать; к базе данных обращаются через Entity Framework (версия 4.4.0.0). Я использую версию 6.9.9.0 драйвера MySql.Data ADO.Net для MySQL. Такая же версия для MySQL.Data.Entity. Тогда был выбран подход "база данных", который дал мне боль на других фронтах (я сначала работаю над переписыванием слоя данных с кодом, но это далеко не готово).

И это то, что я получаю при подключении к новому серверу (работает MySQL 5.7.20).

[MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.]
   MySql.Data.MySqlClient.NativeDriver.Open() +1228
   MySql.Data.MySqlClient.Driver.Open() +22
   MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) +218
   MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() +287
   MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() +93
   MySql.Data.MySqlClient.MySqlPool.GetConnection() +65
   MySql.Data.MySqlClient.MySqlConnection.Open() +566
   System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure) +41

[EntityException: The underlying provider failed on Open.]
   System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure) +207
   System.Data.EntityClient.EntityConnection.Open() +104
   System.Data.Objects.ObjectContext.EnsureConnection() +75
   System.Data.Objects.ObjectQuery'1.GetResults(Nullable'1 forMergeOption) +41

Поэтому я предполагаю, что мои зависимости приложений несовместимы с новым MySQL-сервером, но у меня мало информации. Итак, во-первых, мне нужно знать, действительно ли это так. Потому что, когда я подключаюсь к новому серверу из Visual Studio, соединение не прерывается.

Надеюсь на некоторое понимание...

  • 0
    И да, я полностью осознаю, как неправильно подключать веб-приложение Azure к локальной базе данных ...
Теги:
asp.net-mvc
connection-string
entity-framework-4

1 ответ

0
Лучший ответ

Таким образом, это была пробная версия и ошибка, но проблема была решена путем возврата к порту MySQL по умолчанию (3306)

Первоначально dba сделала базу данных доступной через нестандартный порт, который оказался не такой уж большой идеей. Не смотрел в нее глубже, поэтому я не уверен, что это была проблема брандмауэра с обеих сторон.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню