Я пытаюсь поменять провайдеров баз данных в NET коде на MariaDB. В рамках этого я пытаюсь открыть MySqlConnection. Это, в свою очередь, приводит к выполнению нулевого аргумента с сообщением: «Значение не может быть нулевым. Имя параметра: элемент» и следующий стек вызовов:
mscorlib.dll!System.Attribute.GetCustomAttributes(System.Reflection.Assembly element, System.Type attributeType, bool inherit) Line 756 C#
mscorlib.dll!System.Attribute.GetCustomAttribute(System.Reflection.Assembly element, System.Type attributeType, bool inherit) Line 814 C#
mscorlib.dll!System.Reflection.CustomAttributeExtensions.GetCustomAttribute<System.Runtime.Versioning.TargetFrameworkAttribute>(System.Reflection.Assembly element) Line 27 C#
> MySql.Data.dll!MySql.Data.MySqlClient.MySqlConnectAttrs.InitFramework() Unknown
MySql.Data.dll!MySql.Data.MySqlClient.MySqlConnectAttrs.MySqlConnectAttrs() Unknown
[Native to Managed Transition]
[Managed to Native Transition]
MySql.Data.dll!MySql.Data.MySqlClient.NativeDriver.SetConnectAttrs() Unknown
MySql.Data.dll!MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate(bool reset) Unknown
MySql.Data.dll!MySql.Data.MySqlClient.NativeDriver.Authenticate(string authMethod, bool reset) Unknown
MySql.Data.dll!MySql.Data.MySqlClient.NativeDriver.Open() Unknown
MySql.Data.dll!MySql.Data.MySqlClient.Driver.Open() Unknown
MySql.Data.dll!MySql.Data.MySqlClient.Driver.Create(MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) Unknown
MySql.Data.dll!MySql.Data.Failover.FailoverManager.AttemptConnection(MySql.Data.MySqlClient.MySqlConnection connection, string originalConnectionString, out string connectionString, bool mySqlPoolManager) Unknown
MySql.Data.dll!MySql.Data.MySqlClient.MySqlConnection.Open() Unknown
(My code below this point)
Я использую строку подключения, аналогичную следующей:
<add name="MyMariaDatabase" connectionString="server=myservername.rds.amazonaws.com;port=3306; database=mydb;uid=myuser; pwd=mypassword" providerName="MySql.Data.MySqlClient" />
Пример кода подключения:
using (var client = new MySql.Data.MySqlClient.MySqlConnection(connStr))
{
client.Open();
var result = client.ExecuteScalar(someSqlStatement);
}
Все это работает. NET Framework 4.7.2 и MySQL .Data 8.0.19 .
Есть идеи, что не так? Ошибка кажется глубоко внутри фреймворка, и она не дает мне полезной информации.