MySQL 6.9.8 - 打开新连接

时间:2016-06-02 11:22:04

标签: c# mysql azure azure-worker-roles mysql.data

我不时地在进行数据库查询时遇到ExecuteNonQuery库中MySQL.Data的问题。

enter image description here

引发的异常是:

Exception thrown: 'System.ArgumentOutOfRangeException' in CommonLanguageRuntimeLibrary ("Length cannot be less than zero.")

我的 IntelliTrace 的日志来自 Azure辅助角色

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

我从app.config加载连接字符串,这就是它的样子:

<add key="DatabaseConnectionString" value="Server=localhost; Port=3306; Uid=user; Pwd=mypassword; Pooling=false;" />

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

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

修改

经过进一步调查并浏览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天)。

0 个答案:

没有答案