При использовании 32-разрядной версии MyNet-соединителя.net для подключения к 64-разрядной версии MySQL я получаю сообщение "Ожидание блокировки метаданных таблицы".

У меня есть приложение.net, которое скомпилировано с флагом AnyCPU. Это приложение использует MySQL для постоянного хранения.

Я столкнулся со странной проблемой, то есть когда я запускаю свое приложение на 32-битной машине и подключаю его к 64-битной версии MySQL, работающей на другой машине, мои запросы оказываются в состоянии "Ожидание блокировки метаданных таблицы".

Я уже проверял, что он работает нормально, когда и мое приложение, и MySQL работают на одной и той же платформе, то есть на 32-битной или на 64-битной.

Вот моя теория, которая может быть полностью неверной:)

Поскольку мое приложение загружается как 32-разрядное приложение, следовательно, сборка коннектора.net (который, как я предполагаю, скомпилирован с помощью 'anycpu') также будет загружена как 32-разрядная. Я предполагаю, что что-то идет не так, когда 32-битный соединитель.net связывается с 64-битным MySQL.

Правильна ли моя теория?

а) Если нет, пожалуйста, дайте мне знать, что было бы самым простым способом узнать, что происходит не так?

б) если да, что я могу с этим поделать. Причина в том, что я не могу заставить платформу.net загрузить сборку коннектора.net mysql в 64-битном режиме для моего 32-битного приложения. Даже если бы это было возможно (в рамках одного и того же процесса), как я узнаю, до того, как загрузить коннектор, к какому типу MySQL будет подключаться мое приложение....?

PS Мое инстинктивное чувство состоит в том, что крайне маловероятно, что эта теория верна, поскольку, согласно Google, никто другой не сталкивался с этой проблемой раньше.

1 ответ

Это не похоже на то, что это имеет какое-либо отношение к 64/32 битам из данного сообщения об ошибке.

Посмотрите на этот SO вопрос и ответ и посмотрите, дает ли это какие-либо подсказки: как мне найти, какая транзакция вызывает состояние "Ожидание блокировки метаданных таблицы"?

Другие вопросы по тегам