我正在使用:

  • Advantage数据库服务器10
  • Advantage.Data.Provider.dll(v.9.10.2.9)

  • 在大多数工作站上,一切工作都非常稳定,但是今天,我们的一位新客户报告说他在使用我们的应用程序时遇到了麻烦。日志显示以下临时异常:

    System.ArgumentException:无法识别的属性“用户ID”位于
    连接字符串。在
    Advantage.Data.Provider.AdsConnectionStringHandler.ParseConnectionString(String
    strConnect)
    Advantage.Data.Provider.AdsPoolManager.GetConnection(String
    strConnectionString,AdsInternalConnection&internalConnection,
    AdsConnectionPool&池)位于
    Advantage.Data.Provider.AdsConnection.Open()

    只要所有其他客户都可以使用相同的代码,我就认为问题可能与运行环境有关,但是我仍在尝试找出到底是什么会导致此问题。

    有任何想法吗?

    更新

    我只是浏览了Advantage.Data.Provider.dll代码,发现它们正在使用Hashtable来匹配连接字符串属性,并且Hashtable的初始化对我来说有点奇怪:
    public static Hashtable CreateCaseInsensitiveHashtable()
    {
      return new Hashtable((IEqualityComparer) StringComparer.CurrentCultureIgnoreCase);
    }
    

    我猜StringComparer.CurrentCultureIgnoreCase在这里可能会很麻烦,但是我需要检查一下。

    最佳答案

    客户端版本9.10.0.21和更高版本中已修复此问题。从page with the download link:

    2-修复了Advantage .NET数据提供程序中的一个错误,该错误导致无法正确解析某些区域设置(特别是tr-TR)的连接字符串。

    关于.net - ArgumentException:连接字符串中无法识别的属性“用户ID”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12004397/

    10-09 10:16