You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MySql.Data连接MariaDB时遇System.IndexOutOfRangeException异常

使用Oracle MySql.Data组件连接MariaDB时抛出IndexOutOfRangeException异常

异常信息

System.IndexOutOfRangeException: Index was outside the bounds of the array.
  at System.Diagnostics.TraceInternal.get_AppName () [0x0000e] in <e804fc8285a9419784599893ed028695>:0
  at System.Diagnostics.TraceInternal.TraceEvent (System.Diagnostics.TraceEventType eventType, System.Int32 id, System.String format, System.Object[] args) [0x0003d] in <e804fc8285a9419784599893ed028695>:0
  at System.Diagnostics.Trace.TraceError (System.String message) [0x00000] in <e804fc8285a9419784599893ed028695>:0
  at MySql.Data.MySqlClient.MySqlTrace.LogError (System.Int32 id, System.String msg) [0x00026] in <89b4d3936e0b4e49b8d299ddbfe7933d>:0
  at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver () [0x0002e] in <89b4d3936e0b4e49b8d299ddbfe7933d>:0
  at MySql.Data.MySqlClient.MySqlPool.GetConnection () [0x0001c] in <89b4d3936e0b4e49b8d299ddbfe7933d>:0
  at MySql.Data.MySqlClient.MySqlConnection.Open () [0x00245] in <89b4d3936e0b4e49b8d299ddbfe7933d>:0
  at MyResource.Server.ServerMain..ctor () [0x00026] in C:\Users\Maurice\CFX\MyResource\Server\ServerMain.cs:23
Done.

.dll文件已在Debian 10环境下通过dotnet build编译完成,无警告或错误。

已执行操作

  • 创建包含C#脚本和MySql.Data包.dll文件的文件夹;
  • 在项目文件中添加MySql.Data引用,项目配置如下:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <DebugType>portable</DebugType>
    <TargetName>ServerMain.net</TargetName>
    <DefineConstants>SERVER</DefineConstants>
    <AssemblyName>TEST.Server.net</AssemblyName>
  </PropertyGroup>
    <ItemGroup>
      <Reference Include="MySql.Data">
        <HintPath>MySql.Data.DLL</HintPath>
      </Reference>
    </ItemGroup>
</Project>
  • 通过VS Code SSH连接,在终端执行dotnet build完成项目构建。

执行结果与代码

脚本可正常启动并输出测试内容,但调用conn.Open()方法时抛出上述异常。C#代码如下:

using System;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace TEST.Server
{
    public class ServerMain : BaseScript
    {
        public static void DBTEST()
        {
            var connString = "server=localhost;user=NAME;database=NAME;port=3306;password=*****";
            MySqlConnection conn = new MySqlConnection(connString);
            try
            {
                Console.WriteLine("Connecting to MySQL...");
                conn.Open();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

        public ServerMain()
        {
            DBTEST();
        }
    }
}

内容的提问来源于stack exchange,提问作者monolith_code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:10:43