Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MySQL 6.9.8-打开新连接时System.String.Substring异常_C#_Mysql_Azure_Azure Worker Roles_Mysql.data - Fatal编程技术网

C# MySQL 6.9.8-打开新连接时System.String.Substring异常

C# MySQL 6.9.8-打开新连接时System.String.Substring异常,c#,mysql,azure,azure-worker-roles,mysql.data,C#,Mysql,Azure,Azure Worker Roles,Mysql.data,有时,当我进行数据库查询时,我会遇到MySQL.Data库中的ExecuteNonQuery问题 引发的异常是: 抛出异常:CommonLanguageUntimeLibrary中的“System.ArgumentOutOfRangeException”(“长度不能小于零”) 有来自Azure工作者角色的IntelliTrace的我的日志 它大部分时间都在工作,但当这种情况发生时,它会停止工人的正常处理 我正在从app.config加载连接字符串,如下所示: 我在运行时为每个请求选择数据库,

有时,当我进行数据库查询时,我会遇到
MySQL.Data
库中的
ExecuteNonQuery
问题

引发的异常是:

抛出异常:CommonLanguageUntimeLibrary中的“System.ArgumentOutOfRangeException”(“长度不能小于零”)

有来自Azure工作者角色的IntelliTrace的我的日志

它大部分时间都在工作,但当这种情况发生时,它会停止工人的正常处理

我正在从
app.config
加载连接字符串,如下所示:

我在运行时为每个请求选择数据库,因为它会不断更改连接到哪个数据库

我能做些什么来阻止这种情况发生并允许新连接正确打开

编辑

经过进一步的调查和在
MySQL.Data
源代码中爬行,我深入研究了这个
getter

    [DisplayName("program_name")]
    public string ProgramName
    {
      get
      {
        string name = Environment.CommandLine;
        try
        {
          string path = Environment.CommandLine.Substring(0, Environment.CommandLine.IndexOf("\" ")).Trim('"');
          name = System.IO.Path.GetFileName(path);
          if (Assembly.GetEntryAssembly() != null)
            name = Assembly.GetEntryAssembly().ManifestModule.Name;
        }
        catch (Exception ex)
        {
          name = string.Empty;
          System.Diagnostics.Debug.WriteLine(ex.ToString());
        }
        return name;
      }
    }

现在是否有可能WorkerRole会在执行期间的某个时间开始为Environment.CommandLine属性返回不同的值?这似乎是正在发生的事情,因为它在一开始工作,然后在一段时间(2-3天)后失败。

请发布包含子字符串方法的代码片段。它在MySQL.Data库内部。这不是我的代码,而是实际的MySQL代码。这幅图显示了我调用
ExecuteNonQuery
到所有内部方法的深度,它在底部崩溃。你能用实际数据重现它吗?它是随机的,每2-3天发生一次。有时更频繁。它只在
ExecuteNonQuery
调用上执行此操作,而不是
ExectueQuery
,我发现weirdIt可能会尝试将空字符串或空值“子字符串”。您必须有一个复制数据集。请发布包含子字符串方法的代码段。它位于MySQL.Data库内部。这不是我的代码,而是实际的MySQL代码。这幅图显示了我调用
ExecuteNonQuery
到所有内部方法的深度,它在底部崩溃。你能用实际数据重现它吗?它是随机的,每2-3天发生一次。有时更频繁。它只在
ExecuteNonQuery
调用上执行此操作,而不是
ExectueQuery
,我发现weirdIt可能会尝试将空字符串或空值“子字符串”。您必须有一个复制数据集。