MySQL ODBC соединения (снова)

Я знаю, что этот вопрос задавался много раз, но мой вариант немного отличается, и я потяну свои волосы, потратив несколько часов, пытаясь заставить работать одну строку кода. У меня есть база данных MySQL, и я пытаюсь подключиться через ODBC. Я на Windows 10 версии 1909.

Line 13: OpenString ="DRIVER={MySQL ODBC 8.0 ANSI Driver};SERVER=localhost;DATABASE=collections;UID=edited_out;PWD=edited_out;"
Line 14: Conn = Server.Createobject("ADODB.Connection")
Line 15: Conn.open = OpenString

Приведенный код прекрасно работает на моем главном ПК с Microsoft .NET Framework Версия: 4.0.30319; Версия ASP.NET: 4.8.4075.0 и DRIVER = {MySQL ODBC 5.3 ANSI Driver}. На тестовом ПК с почти идентичной конфигурацией произойдет сбой точно такого же кода, за исключением имени драйвера. (Версия Microsoft .NET Framework: 4.0.30319; версия ASP.NET: 4.8.4075.0 и DRIVER = {Драйвер ANSI MySQL ODBC 8.0} или, в этом отношении, DRIVER = {Драйвер Unicode MySQL ODBC 8.0} - оба установлены.) см. прикрепленное изображение для доказательства. Я получаю хорошо известное и удручающее "Имя источника данных не найдено и драйвер по умолчанию не указан". Фрагмент кода и драйверы

Я понимаю, что эта ошибка почти всегда происходит из-за неправильного имени драйвера. Однако я проверил и перепроверил мой синтаксис и установку драйвера. Я знаю, что в моей установке ODBC нет ничего плохого, поскольку я установил LibreOffice исключительно для тестирования и смог в течение нескольких секунд подключиться к той же базе данных через ODBC на том же ПК, используя тот же драйвер, который показан здесь. Есть ли что-то другое или особенно неприятное в драйверах ODBC версии 8.0? Нужно ли пытаться понизить эту версию до 5.3?

Спасибо за любую помощь.

Всего 1 ответ


ИСПРАВЛЕНИЕ: Отключите 32-битные приложения для вашего сайта, если работаете с 64-битными!

(Отвечая на мой вопрос в надежде, что это кому-нибудь поможет.) Я понял это. Строка подключения была красная сельдь. Дальнейшая детективная работа привела меня к посту, который советовал проверять пулы приложений в IIS. Совет состоял в том, чтобы включить 32-разрядные приложения в разделе «Дополнительные параметры» для вашего сайта, если у вас есть 32-разрядные приложения, что довольно очевидно.

Тем не менее, мое приложение является 64-битным, и я заметил, что эта опция была отключена на моем рабочем ПК. Отключение его на другом ПК восстановило соединение: очевидно, что Windows по умолчанию использовала несуществующий 32-битный драйвер и показывала неоднозначное сообщение об ошибке при сбое. Авторы программного обеспечения, кажется, вырывают много этих дыр для пользователей, чтобы попасть в ...


Есть идеи?

10000